$ कार्य- & gt; {t1} {cmdline} = "कन्वर्ट -f% फॉंट%% 1%" ; $ कार्य- & gt; {t1} {report} = "% सीएमडी% द्वारा% USER% के रूप में शुरू किया गया"; $ Tid = 't1'; $ $ ($ {{$ Tid}}} {$ tasks- & gt; {$ tid} {$ parm} = ~ s /% फ़ॉन्ट% / $ कार्य- & gt; {$ tid} {} फॉन्ट / जी; # मूल्यांकन कर सकता है कि $ parm == 'cmdline'; $ Tasks- & gt; {$ टीआईडी} {$ parm} = ~ s /% सीएमडी% / $ tasks- & gt; {$ टीआईडी} {} cmdline / जी; }
यह कोड खराब है, क्योंकि इसे विदेशी मुद्रा के बाहर एक और पाश की ज़रूरत है (यह सुनिश्चित करने के लिए कि सभी प्रतिलिपि किए गए मानों को बदला गया था), और इसमें बहुत अधिक पाठ डेटा भी शामिल है वर्तमान में लिखना का सबसे अच्छा तरीका इस रूप में दिखता है:
foreach मेरी $ parm (चाबी% {$ कार्य- & gt; {$ tid}}) {& amp; लुकअप वैल्यू (\ $ कार्य- & gt; { $ टीआईडी} {& amp; parm}); # या ($ परम) अगर सख्त रिफॉर्म्स? }
हालांकि प्राथमिकता (यदि% सीएमडी% को% फॉंट%, $ कार्यों -> {$ tid} {report} से पहले बदल दिया गया है, की पहचान करने के लिए उसे क्रमबद्ध करने की आवश्यकता है )।
foreach my $ parm (& SORTME ($ कार्य- & gt; {$ tid})) {& amp; लुकअपवॉल्यूंसफॉर ($ tid, $ parm); }
निर्दिष्ट चर और उनके संबंधों की संख्या के आधार पर सॉर्ट करने का सबसे अच्छा तरीका क्या है? मूल निवासी (बहुत सारे छोरों और हैश), या एक्सपेट [संबंधित प्रश्न किसी भी तरह मुझे एक्सपिट करने के लिए ओर इशारा करते हैं, यह भी जांच लेंगे:] या अन्य पार्सर?
OOP का ऑब्जेक्ट-> value ('cmdline ') अब पसंद नहीं है।
यह कोड' काम करता है '- और मुझे क्लीनर दिखता है चाहे वह जो करता है, वह अधिक बहस का कारण बनता है।
सख्त का उपयोग करें; चेतावनियों का उपयोग करें; मेरे $ कार्य; # प्रदर्शन सेटअप $ कार्यों- & gt; {t1} {cmdline} = "कन्वर्ट -f% फॉंट%% 1%"; $ कार्य- & gt; {t1} {report} = "% सीएमडी% द्वारा% USER% के रूप में शुरू किया गया"; $ कार्य- & gt; {t1} {maps} = {'% USER%' = & gt; 'उपयोगकर्ता-विस्तार', '% 1%' = & gt; 'एक विस्तार', '% फॉंट%' = & gt; 'फ़ॉन्ट-विस्तार', '% सीएमडी%' = & gt; 'सीएमडी-विस्तार',}; # क्या प्रतिस्थापन मेरी $ टिड (चाबी% $ कार्य) को प्राथमिकता दें {my $ task = $ tasks- & gt; {$ tid}; मेरे $ नक्शे = $ कार्य- & gt; {नक्शे}; मेरे $ नक्शा foreach (चाबियाँ% $ नक्शे) {foreach मेरी $ कुंजी (कुंजी% {$ कार्य}) {अगले अगर रिफ $ कार्य- & gt; {$ key}; $ कार्य- & gt; {$ key} = ~ s / $ नक्शा / $ मानचित्र- & gt; {$ map} / g; }}} # प्रदर्शन प्रिंटिंग मेरी $ टिड (चाबी% $ कार्य) {my $ task = $ tasks- & gt; {$ tid}; मेरी $ कुंजी (कुंजी% {$ कार्य}) को अग्रसार करें {यदि रिफ $ कार्य- & gt; {$ key}; Printf "% s:% -8s =% s \ n", $ tid, "$ कुंजी:", $ कार्य- & gt; {$ key}; }}
MacOS X (10.6.4) पर पर्ल 5.13.4 का उपयोग करते हुए आउटपुट है:
t1: report: = सीएमडी-विस्तार के रूप में शुरू किया गया उपयोगकर्ता विस्तार T1 द्वारा: cmdline: = convert -f फ़ॉन्ट विस्तार एक विस्तार
ट्रिपल लूप अपरिहार्य के करीब है; आप प्रत्येक कार्य के लिए प्रत्येक स्ट्रिंग के प्रत्येक मानचित्रण को लागू करना चाहते हैं। प्रत्येक कार्य का अपना मैपिंग सामान्य रूप में हो सकता है।
Comments
Post a Comment