मैं थोड़ी देर के लिए अपने मॉड्यूल के अंत में मूर्ख चीजें डाल रहा हूं। कोई नुकसान नहीं है और इसका थोड़ा ईस्टर अंडे है। uny2k"Yes, this code is a joke."
Class::Fields के साथ मददगार रूप से समाप्त होता है।
इसे एक कदम आगे ले जाना, कभी-कभी जब कोई फ़ंक्शन true
और false
लौटने के लिए प्रलेखित किया जाता है, तो मैं true
के लिए 1 से कुछ कुछ वापस कर दूंगा। यह if foo() == 1
लिखने वाले लोगों को दंडित करना है जब उनका मतलब if foo()
है। यह इसी अवधि मैं use constant TRUE => 1==1; use constant FALSE => !TRUE;
मैं उत्पादन कोड में इस्तेमाल एक मॉड्यूल के रिटर्न मान देखा है लिख रहा था के आसपास थी। मुझे बिल्कुल याद नहीं है क्यों। डेवलपर का तर्क था ... अत्याचार। मेरा मानना है कि यह दो की जगह सिर्फ एक पंक्ति लिखना नहीं चाहता था। मुझे याद नहीं है कि उसने इसे क्यों निर्यात नहीं किया।
यह वही डेवलपर हैं जो %_
इस्तेमाल किया तर्क के आसपास पारित करने के लिए किया गया था (*_
प्रतीक वैश्विक संकुल भर में है) और 150 लाइन नक्शा बयान नक्शा बयान के अंदर लिखा था।
वापसी मान कहानियो से अलग का उपयोग कर, के खतरे, कि यह केवल एक बार काम करता है।
$ cat Foo.pm
package Foo;
return "Basset hounds got long ears";
$ cat test.plx
#!/usr/bin/perl -w
print require Foo, "\n";
print require Foo, "\n";
$ perl -I. test.plx
Basset hounds got long ears
1
पहली कॉल require
को Foo.pm मूल्यांकन करता है और वापसी मान देता है। दूसरी कॉल इसे पहले से ही %INC
में देखती है और केवल सच होती है। और आप यह भी सुनिश्चित नहीं कर सकते कि कोड की आवश्यकता के लिए आप पहली चीज़ हैं। आप इसे do "Foo.pm"
के साथ प्राप्त कर सकते हैं, लेकिन अब आप हर बार मॉड्यूल को पुनः परिभाषित कर रहे हैं, फिर से परिभाषित दिनचर्या, प्रदर्शन के लिए समस्याएं और संभवतः ग्लोबल्स को फिर से शुरू करने के बारे में चेतावनियां। यह इसके लायक नहीं है।
आप ऐसा क्यों करना चाहते हैं? – innaM
मुझे दो बार एक ही चीज़ टाइप करने से नफरत है। मैं सहमत हूं, मेरे पास एक रिफैक्टरिंग समस्या है, मैं बैठकों में भाग ले रहा हूं ... –
रिफैक्टरिंग एक बात है, गोल्फ़िंग एक और है। ;) –