2015-07-06 5 views
8

मैंने कई posts देखा है कि पर्ल में use 5.12.0; राज्य डिफ़ॉल्ट रूप से कुछ विशेषताओं/pragmas सक्षम करता है (उदाहरण के लिए, use strict;)। जहां यह कहा गया कि use 5.14.0; यूनिकोड स्ट्रिंग सुविधा UTF-8 से निपटने के लिएपर्ल: उपयोग में क्या शामिल है 5। ##। #?

इष्टतम है एक और उदाहरण UTF-8 and perl में है।

मैं एक उपलब्ध use घोषणा है कि कुछ चूक प्रदान करता है (उदाहरण के लिए, use strict; use warnings; use diagnostics;) को याद करने लगते हैं, लेकिन बारीकियों याद नहीं कर सकते। किसी दिए गए use 5.##.#; कथन में क्या शामिल है, यह कैसे पता लगाता है? उदाहरण के लिए, use 5.22.0; डिफ़ॉल्ट रूप से क्या प्रदान करता है? use strict;? और कुछ? धन्यवाद।

उत्तर

10

यह perldoc feature में दर्ज है:

यह कई सुविधाओं एक साथ लोड करने के लिए, एक सुविधा बंडल का उपयोग कर सकता है। फीचर बंडल का नाम एक कोलन के साथ प्रीफ़िक्स्ड किया गया है, इसे वास्तविक सुविधा से अलग करने के लिए।

use feature ":5.10"; 

निम्नलिखित सुविधा बंडलों उपलब्ध हैं:

bundle features included 
--------- ----------------- 
:default array_base 
:5.10  say state switch array_base 
:5.12  say state switch unicode_strings array_base 
:5.14  say state switch unicode_strings array_base 
:5.16  say state switch unicode_strings 
      unicode_eval evalbytes current_sub fc 
:5.18  say state switch unicode_strings 
      unicode_eval evalbytes current_sub fc 
:5.20  say state switch unicode_strings 
      unicode_eval evalbytes current_sub fc 
:5.22  say state switch unicode_strings 
      unicode_eval evalbytes current_sub fc 

जहां

use v5.10.0; 

एक अंतर्निहित

no feature ':all'; 
use feature ':5.10'; 
करना होगा

और इसी तरह से।

स्वचालित नियमों के सक्षम करने perldoc -f use में दर्ज है:

यदि निर्दिष्ट पर्ल संस्करण की तुलना में अधिक से अधिक या 5.12.0 के बराबर है, बाध्यताओं use strict साथ के रूप में lexically सक्षम हैं।

+0

बिल्कुल सही। यही वह है जिसकी तलाश में मैं हूं। क्या मैं इसे कल्पना कर रहा था, या क्या वहां कुछ 'फीचर' सबसेट है जिसमें शामिल हैं: सख्त, चेतावनियां और डायग्नोस्टिक्स सभी एक ही समय में?धन्यवाद – secJ

+0

जहां तक ​​मुझे पता है, कोर में कुछ भी नहीं है जो ऐसा करता है, लेकिन निश्चित रूप से मॉड्यूल हो सकते हैं जो ऐसा करते हैं। शायद आप [आधुनिक :: पर्ल] (https://metacpan.org/pod/Modern::Perl) के बारे में सोच रहे हैं, जो अन्य चीजों के साथ 'सख्त', 'चेतावनियां' और सभी 5.10 विशेषताओं को सक्षम बनाता है। – ThisSuitIsBlackNot

+0

आह, हाँ, यह है! आधुनिक :: पर्ल। धन्यवाद फिर से – secJ

2

use 5.12.0;use feature ':5.12'; करता है, ताकि आप

  • कहना मिल
  • राज्य
  • स्विच
  • unicode_strings

FEA array_base ट्यूरे बंडल को feature.pm के दस्तावेज़ में दस्तावेज किया गया है।

+0

याद नहीं कर सकते हैं। पीएम के दस्तावेज के लिंक के लिए धन्यवाद। – secJ

2

feature द्वारा कवर न किए गए एन्हांसमेंट के लिए, आप Syntax::Construct का उपयोग कर सकते हैं।

+0

बुकमार्क करने के लिए महान संसाधन बहुत दिलचस्प मॉड्यूल! – secJ

संबंधित मुद्दे