मैं अपने स्वयं पर्ल को पढ़ाने की प्रक्रिया में हूं। मैं एक्लिप्स में ईपीआईसी डीबगर का उपयोग कर रहा हूं। जब भी मेरे पास एक उप में केवल एक बार उपयोग किया जाता है, तो मुझे यह चेतावनी मिलती है:
टाइपोग्राफ़िकल त्रुटियां अक्सर अद्वितीय चर नाम के रूप में दिखाई देती हैं। यदि आपके पास एक अद्वितीय नाम रखने का कोई अच्छा कारण है, तो संदेश को दबाने के लिए इसे किसी भी तरह से का जिक्र करें। इस उद्देश्य के लिए C<our>
घोषणा प्रदान की गई है।
C<our>
क्या है? मानक खोज अनिश्चित थी।पर्ल: सी <our> क्या है?
उत्तर
जहाँ तक
C<>
बात यह है कि आप भ्रमित हो सकता है, ऐसा लगता है कि महाकाव्य की तरह एक पाठ in POD format लिया और बजाय पॉड से यह प्रतिपादन एक स्वरूपित पाठ में के कच्चे छपी।C<our>
पीओडी सिंटैक्स में "हमारे पाठ को कोड के रूप में स्वरूपित करें" का अर्थ है, आमतौर पर मोनो-स्पेस फ़ॉन्ट का अर्थ है। यह StackOverflow's`our`
backtick-surrounded format command आपके स्वयं के प्रश्न के समान है।त्रुटि ही पर्ल के
diagnostics
मॉड्यूल, जो अन्यथा कुछ हद तक गुप्त पर्ल चेतावनियों के लिए विस्तारित स्पष्टीकरण प्रदान करता है (इस मामले में, "नाम"% s ::% s "केवल एक बार इस्तेमाल: संभव टाइपो") से आता है। वास्तव में, पीओडी स्वरूपण से निर्णय लेने से आपको भ्रमित कर दिया गया है, ईपीआईसी शायद source POD from which the above-linked "perldiag" document was generated का उपयोग करता है।का आग्रह कर रहे हैं कि क्या
our
करता है, तो आप perldoc -f our पढ़ना चाहिए - यह (विवरण के लिए tchrist के asnwer देखें) एक वैश्विक चर किसी दिए गए क्षेत्र में प्रभावी में एक उपनाम बनाने के लिए एक तरीका है।इस मामले में गुगलिंग तकनीक तक, जब आप विशेष रूप से खोज रहे हैं कि आप पर्ल कीवर्ड होने की अपेक्षा करते हैं, तो यह हमेशा "perldoc someKeyword" के लिए Google को भुगतान करता है।
@ डेक्सिम - धन्यवाद! – DVK
यह गलत है। 'हमारा' किसी भी तरह से मौजूदा पैकेज के हिस्से के रूप में एक चर घोषित नहीं करता है। यह एक व्याख्यात्मक घोषित करता है जो वर्तमान ** स्कोर ** का हिस्सा है, जो समान नामित पैकेज चर में उपनाम प्रदान करता है। लेकिन शब्दावली गुंजाइश का हिस्सा है, न कि पैकेज, और इस प्रकार आप पैकेज को बदलने के बावजूद इसके अलिया बाध्यकारी को बरकरार रखते हैं। 'पैकेज बाहरी; $ बाहरी :: Var = 10; हमारे $ वार; पैकेज आंतरिक; $ आंतरिक :: Var = 20; $ Var कहें; '10 मुद्रित होने के लिए बस ठीक काम करता है, 20 नहीं। इसका मतलब यह भी है कि आप' मेरी $ var = 10 की सामान्य शब्दावली छायांकन चाल नहीं कर सकते हैं; {मेरा $ var = $ var * 2; ...} '। देखें कि यह सब कैसे काम करता है? – tchrist
@ क्रिसमस - मुझे आशा है कि आपका वर्तमान ** स्कोप ** और वर्तमान * स्कोर * नहीं है, अन्यथा मैं पूरी तरह उलझन में रहूंगा। अगर यह सिर्फ एक टाइपो था और कुछ गहरी पर्ची अवधि नहीं मैंने पहले कभी नहीं सुना, तो आप बिल्कुल सही हैं। मेरा एकमात्र बहाना यह है कि मैं कभी भी इस तरह के फैंसी तरीकों से "हमारा" उपयोग नहीं करता (क्योंकि मेरा अधिकांश पर्ल कोड काफी हद तक ओओ है जहां इस तरह का दृष्टिकोण खराब डिजाइन होगा)। – DVK
यह Perl::Critic
संदेश है जो बताता है कि आप वर्णित कारण के लिए our $var;
परिवर्तनीय परिभाषा के लिए उपयोग कर सकते हैं :-)।
हालांकि कोई गारंटी नहीं है क्या आप वाकई पर्ल :: आलोचक से हैं और 'डायग्नोस्टिक्स' नहीं हैं? – DVK
'हमारा' नहीं, एक चर वैरिएबल परिभाषित करता है। यह एक मौजूदा वैश्विक चर के लिए एक नया lexically scoped उपनाम प्रदान करता है। इसका मतलब है कि 'मेरा $ x = 10' और' हमारा $ Big_X = 100' बहुत कम अलग-अलग चीजें करता है: विचार करें कि किसी दूसरे में, शायद घोंसला वाले गुंजाइश के बाद हमारे पास 'मेरा $ x = 20' और' हमारा $ Big_X = 1_000 है '। यह एक नया नया निजी वैरिएबल है जिसका नाम '$ x' है, लेकिन वैश्विक' $ Big_X' पैकेज में इसका मूल्य बदल गया था। – tchrist
our
वैश्विक चर के लिए एक व्याख्यात्मक रूप से स्कॉप्ड उपनाम है।
- 1. पर्ल <STDIN>
- 2. पर्ल में अगर (-f <filename>) क्या करता है?
- 3. क्या करता = ~ पर्ल में मतलब
- 4. पर्ल से तेज पर्ल है?
- 5. << ऑपरेटर सी ++ में क्या कर रहा है?
- 6. <% $, <% @, <% =, <% # ... सौदा क्या है?
- 7. @ क्या है। पर्ल में?
- 8. पायथन के पर्ल के बराबर (<>) {...}?
- 9. PHP क्या <<< मतलब है?
- 10. पर्ल के पुनरावृत्ति ऑपरेटर के सी # समकक्ष क्या है?
- 11. क्या कोई पोर्टेबल पर्ल है?
- 12. पर्ल में '@_' क्या करता है?
- 13. अपडेटेडः पर्ल इनलाइन :: सी
- 14. पर्ल में, `जबकि (<HANDLE>) {...}` `_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
- 15. ओवरलोडिंग ऑपरेटर << - सी ++
- 16. "ऑपरेटर <<" क्या कहा जाता है?
- 17. कक्षा << आत्म मतलब क्या है?
- 18. << पायथन में क्या करता है?
- 19. सी #: क्या IOrderedEnumerable <T> वापस करना संभव है?
- 20. सी ++ प्रीप्रोसेसर आउटपुट में <built-in> क्या है?
- 21. क्या <T> में निरूपित सी #
- 22. "<<<" ऑपरेटर का नाम क्या है?
- 23. PHP में <<< ईओडी का उपयोग क्या है?
- 24. PHP में, "<<<" क्या दर्शाता है?
- 25. वह भाषा क्या है? (<%REPEAT...%>, <% वैकल्पिक ...%>)
- 26. सी ++ से पर्ल/यूनिक्स जॉब
- 27. पर्ल
- 28. <% "का अर्थ क्या है: <% = और <% = में क्या अंतर है?
- 29. वेनिला पर्ल और स्ट्रॉबेरी पर्ल के बीच अंतर क्या हैं?
- 30. पर्ल में, एक .pm (पर्ल मॉड्यूल) और .pl (पर्ल स्क्रिप्ट) फ़ाइल के बीच क्या अंतर है?
जब आप कहते हैं कि "मानक खोज अनिश्चित थी", तो क्या आपने [perldoc -f our] (http://perldoc.perl.org/functions/our.html) टाइप करने का प्रयास किया था? – Ether
@ ईथर - प्रत्येक व्यक्ति को perldoc कमांड लाइन के बारे में पता नहीं है (या यहां तक कि इसका उपयोग भी है)। ज्यादातर लोग सिर्फ Google। – DVK
@Cooter => परिवर्तनीय घोषणा में 'हमारा' जोड़ते समय चेतावनी को दबाया जा सकता है, कारण यह है कि आप इसे प्राप्त कर रहे हैं क्योंकि चर आपके प्रोग्राम में केवल एक बार उपयोग किया जाता है। यह शायद एक त्रुटि है जब तक कि आप प्रतीकात्मक संदर्भ या प्रत्यक्ष प्रतीक तालिका पहुंच के साथ गेम नहीं खेल रहे हैं (जो आपको भाषा की मूल बातें सीखते समय वास्तव में नहीं करनी चाहिए)। क्या आप चेतावनी उत्पन्न करने वाले कोड के ब्लॉक को पोस्ट कर सकते हैं? –