मैं टर्मिनल आउटपुट के रंगीनकरण के लिए मेरी पर्ल स्क्रिप्ट में Term::ANSIColor
का उपयोग कर रहा हूं, और मैं colorstrip
फ़ंक्शन का उपयोग कर रहा हूं, जिसे चेंजलॉग के अनुसार Term::ANSIColor
संस्करण 2.01 में जोड़ा गया था। तो, क्या मेरी स्क्रिप्ट स्वचालित रूप से die
उचित त्रुटि संदेश के साथ बनाने का कोई तरीका है यदि इसे कम से कम Term::ANSIcolor
का संस्करण नहीं मिलता है?मैं अपने पर्ल स्क्रिप्ट में एक पर्ल मॉड्यूल के एक निश्चित संस्करण (या उच्चतर) का उपयोग कैसे करूं?
उत्तर
बस:
use Term::ANSIColor 2.01;
perldoc -f use
देखें:
उपयोग मॉड्यूल संस्करण सूची
तो संस्करण तर्क मॉड्यूल और सूची के बीच मौजूद है, तो उपयोग कॉल करेंगे दिए गए संस्करण के साथ एक तर्क के रूप में कक्षा मॉड्यूल में संस्करण विधि। यूनिवर्सल क्लास से विरासत में मिली डिफ़ॉल्ट संस्करण विधि, यदि दिया गया संस्करण परिवर्तनीय $ मॉड्यूल :: संस्करण के मान से बड़ा है।
अधिकांश मॉड्यूल पैकेज चर $VERSION
परिभाषित करते हैं।
use Term::ANSIColor;
die "Sorry, this program needs Term::ANSIColor >= v2.01!\n"
unless $Term::ANSIColor::VERSION >= 2.01;
यह भी एक अधिकतम एक मॉड्यूल के संस्करण निर्दिष्ट करने के लिए एक अच्छा तरीका है।
use Module::Foo;
die "You need an *older* version of Module::Foo that ",
"still has the &barbaz method defined"
if $Module::Foo::VERSION >= 0.47;
, बस संस्करण आप उपयोग करना चाहते निर्दिष्ट करें: संस्करण में कम से कम 2.13 नहीं है, तो
use Some::Module 2.13;
, आपरेशन असफल हो जायेगी।
आपको उस संस्करण का कमांड लाइन पर उपलब्ध है के साथ प्रयोग कर सकते हैं:
perl -MSome::Module=9999 -e 'exit 0'
यह आमतौर पर (त्रुटि संदेश में दिखाया गया है जब तक कि मॉड्यूल आप का उपयोग करने की कोशिश कर रहे हैं होता है गलत संस्करण संख्या के साथ मर जाएगा 5 अंक या लंबा संस्करण संख्या होने के लिए, या जब तक कि मॉड्यूल strict
जैसा न हो और किसी संस्करण संख्या के साथ कमांड लाइन के माध्यम से लोड नहीं किया जा रहा हो या URI
(विवरण के लिए टिप्पणियां देखें))।
$ perl -MFile::Find=999 -e 'exit 0'
File::Find version 999 required--this is only version 1.07 at
/usr/perl5/5.8.4/lib/Exporter/Heavy.pm line 121.
BEGIN failed--compilation aborted.
$ perl -e 'use File::Find 999; exit 0'
File::Find version 999 required--this is only version 1.07 at -e line 1.
BEGIN failed--compilation aborted at -e line 1.
$
एक मशीन पर चलाएं जिसका मैं सामान्य रूप से उपयोग नहीं करता, इसलिए पर्ल का पुरातन संस्करण।
दोनों अलग-अलग हैं; कमांड लाइन -एम स्विच कभी भी उपयोग करने के लिए एक संस्करण निर्दिष्ट नहीं करता है; इसके बजाए यह मॉड्यूल के आयात दिनचर्या के पैरामीटर के रूप में आपूर्ति करता है, और मॉड्यूल जो एक्सपोर्टर का उपयोग करते हैं, फिर संस्करण जांच करते हैं। लेकिन सभी मॉड्यूल निर्यातक का उपयोग नहीं करते हैं। – ysth
यह सभी मॉड्यूल के साथ भरोसेमंद काम नहीं करता है, इसलिए यह एक सामान्य तकनीक नहीं है, जैसा कि ysth कहते हैं। –
@ysth और @brian: ठीक है - मैं इसके लिए अपना शब्द लेता हूं; मैंने सीपीएएन में प्रत्येक मॉड्यूल पर इसे आजमाया नहीं है, लेकिन एकमात्र बार जब मैं संस्करण संख्याओं के साथ किसी समस्या में भाग लेता हूं, वह मुख्य मॉड्यूल के उप-मॉड्यूल के साथ होता है जो विश्वसनीय रूप से अपना स्वयं का संस्करण सेट नहीं करता है। क्या आप एक उदाहरण या दो मॉड्यूल दे सकते हैं जहां यह काम नहीं करता है? –
- 1. मैं एक निर्देशिका में एक पर्ल मॉड्यूल का उपयोग कैसे करूं जो @INC में नहीं है?
- 2. मैं पर्ल मॉड्यूल से स्थिरांक का उपयोग कैसे करूं?
- 3. एक पर्ल मॉड्यूल
- 4. मैं पर्ल या पावरशेल स्क्रिप्ट
- 5. मैं एक नया पर्ल मॉड्यूल वितरण कैसे शुरू करूं?
- 6. एक स्टैंडअलोन पर्ल स्क्रिप्ट
- 7. पर्ल में, एक .pm (पर्ल मॉड्यूल) और .pl (पर्ल स्क्रिप्ट) फ़ाइल के बीच क्या अंतर है?
- 8. मैं लिनक्स में एक पर्ल स्क्रिप्ट से SQL सर्वर डेटाबेस का उपयोग कैसे करूं?
- 9. मैं एक संबंधित स्थान से पर्ल मॉड्यूल का उपयोग कैसे करूं?
- 10. मैं एक स्थापित पर्ल मॉड्यूल का संस्करण और स्थान कैसे प्राप्त कर सकता हूं?
- 11. मैं सक्रिय पर्ल के साथ एक पर्ल स्क्रिप्ट कैसे चला सकता हूं?
- 12. मैं एक पर्ल स्क्रिप्ट में चर देखने के लिए एक पर्ल स्क्रिप्ट कैसे प्राप्त कर सकता हूं?
- 13. मैं पर्ल में बाधाओं का एक सेट कैसे हल करूं?
- 14. पर्ल मॉड्यूल उपयोग
- 15. मैं एक चर में पर्ल के STDOUT कैप्चर कैसे करूं?
- 16. मैं पर्ल में एक फाइल कैसे फ्लश करूं?
- 17. मैं अनुमति अनुमतियों के बिना एक नया पर्ल मॉड्यूल का उपयोग कैसे कर सकता हूं?
- 18. मैं अपनी पर्ल स्क्रिप्ट की मॉड्यूल निर्भरताओं को कैसे ढूंढूं?
- 19. पर्ल मॉड्यूल?
- 20. मैं एक पर्ल वेब ऐप कैसे प्रोफाइल करूं?
- 21. मैं अपने पर्ल एप्लिकेशन को एक फ़ाइल के रूप में कैसे वितरित कर सकता हूं?
- 22. मैं एक स्थापित पर्ल मॉड्यूल का संस्करण कैसे ढूंढ सकता हूं?
- 23. मैं सी # एप्लिकेशन में पर्ल स्क्रिप्ट कैसे कॉल करूं?
- 24. पर्ल स्क्रिप्ट एक प्रोग्राम के रूप में उपयोग करने योग्य और मॉड्यूल के रूप में
- 25. मैं पर्ल में एसिंक प्रोग्रामिंग का उपयोग कैसे करूं?
- 26. मैं पर्ल रीडपाइप हैंडलर में चर का विस्तार कैसे करूं?
- 27. मैं एक पर्ल मॉड्यूल कैसे शामिल करूं जो एक अलग निर्देशिका में है?
- 28. मैं पर्ल स्क्रिप्ट के भीतर से पर्ल स्क्रिप्ट कैसे चला सकता हूं?
- 29. मैं पर्ल मॉड्यूल निर्भरताओं का प्रबंधन कैसे कर सकता हूं?
- 30. मैं पर्ल मॉड्यूल पथ को गतिशील रूप से कैसे बदलूं?
यह करने का यह एक अच्छा तरीका है। जब आप आयात सूची में कोई संस्करण प्रदान करते हैं, तो आप वास्तव में इसे प्रबंधित करने वाली आयात विधि पर भरोसा करते हैं। इतना ही नहीं, आयात तकनीक केवल उस संस्करण या बाद में आवश्यक है। यदि आप एक विशेष संस्करण या संस्करणों की श्रृंखला चाहते हैं, तो आप इस सामान्य तकनीक के साथ समाप्त हो जाते हैं। –
दरअसल 'आयात' विधि से कोई मदद की आवश्यकता नहीं है - जब आप 'उपयोग' या' आवश्यकता 'का उपयोग किसी संस्करण संख्या के साथ करते हैं, तो' VERSION' विधि पर एक कॉल उत्पन्न होता है। लेकिन प्रत्येक पैकेज जो विशेष रूप से ओवरराइड नहीं करता है, उसे 'यूनिवर्सल' से उपयुक्त 'संस्करण' विधि मिलती है। – hobbs
@brian शायद आपको पिछले संदेश पर टैग करना चाहिए था, इसलिए अब मैं हूं :) – hobbs