पर्ल - विशेष चर

कुछ चर ऐसे हैं जिनका पर्ल में पूर्वनिर्धारित और विशेष अर्थ है। वे चर हैं जो सामान्य चर सूचक ($, @, या%) के बाद विराम वर्णों का उपयोग करते हैं, जैसे $ _ (समझाया गया)।

अधिकांश विशेष चर में लंबे नाम की तरह एक अंग्रेजी होता है, जैसे, ऑपरेटिंग सिस्टम त्रुटि चर $! $ OS_ERROR के रूप में लिखा जा सकता है। लेकिन अगर आप नाम की तरह अंग्रेजी का उपयोग करने जा रहे हैं, तो आपको एक लाइन डालनी होगीuse English;आपकी प्रोग्राम फ़ाइल के शीर्ष पर। यह दुभाषिया को चर के सटीक अर्थ को निर्देशित करता है।

सबसे अधिक इस्तेमाल किया जाने वाला विशेष चर $ _ है, जिसमें डिफ़ॉल्ट इनपुट और पैटर्न-खोज स्ट्रिंग शामिल है। उदाहरण के लिए, निम्नलिखित पंक्तियों में -

#!/usr/bin/perl

foreach ('hickory','dickory','doc') {
   print $_;
   print "\n";
}

निष्पादित होने पर, यह निम्नलिखित परिणाम देगा -

hickory
dickory
doc

फिर से, $ _ चर का उपयोग किए बिना स्पष्ट रूप से एक ही उदाहरण देखें।

#!/usr/bin/perl

foreach ('hickory','dickory','doc') {
   print;
   print "\n";
}

जब निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम भी देगा -

hickory
dickory
doc

पहली बार लूप निष्पादित किया जाता है, "हिकरी" मुद्रित होता है। दूसरी बार के आसपास, "डिकोरी" छपा है, और तीसरी बार, "डॉक" छपा है। ऐसा इसलिए है क्योंकि लूप के प्रत्येक पुनरावृत्ति में, वर्तमान स्ट्रिंग को $ _ में रखा गया है, और प्रिंट द्वारा डिफ़ॉल्ट रूप से उपयोग किया जाता है। यहां वे स्थान हैं जहां पर्ल $ _ ग्रहण करेगा, भले ही आप इसे निर्दिष्ट न करें -

  • ऑर्ड और इंट जैसे कार्यों के साथ-साथ सभी फ़ाइल परीक्षण (-f, -d) को छोड़कर, -t को छोड़कर, जिसमें एसटीडीआईएन को शामिल किया गया है, सहित विभिन्न असैन्य कार्य।

  • विभिन्न सूची कार्य जैसे प्रिंट और अनलिंक।

  • जब एक = ~ ऑपरेटर के बिना उपयोग किया जाता है तो पैटर्न-मिलान संचालन m //, s ///, और tr ///।

  • यदि कोई अन्य चर की आपूर्ति नहीं की जाती है, तो फ़ॉरेस्ट लूप में डिफ़ॉल्ट पुनरावृत्ति चर।

  • Grep और मैप फ़ंक्शंस में निहित इटरेटर चर।

  • इनपुट रिकॉर्ड डालने के लिए डिफ़ॉल्ट स्थान जब एक लाइन-इनपुट ऑपरेशन के परिणाम का परीक्षण समय की एकमात्र कसौटी (यानी,) के रूप में किया जाता है। ध्यान दें कि थोड़ी देर के परीक्षण के बाद, ऐसा नहीं होगा।

विशेष चर प्रकार

विशेष चर के उपयोग और प्रकृति के आधार पर, हम उन्हें निम्नलिखित श्रेणियों में वर्गीकृत कर सकते हैं -

  • वैश्विक स्केलर विशेष चर।
  • वैश्विक सरणी विशेष चर।
  • ग्लोबल हैश स्पेशल वेरिएबल्स।
  • ग्लोबल स्पेशल फाइलहैंडल्स।
  • वैश्विक विशेष स्थिरांक।
  • नियमित अभिव्यक्ति विशेष चर।
  • फाइलहैंडल विशेष चर।

वैश्विक स्केलर विशेष चर

यहां सभी स्केलर विशेष चर की सूची दी गई है। हमने संबंधित अंग्रेजी को प्रतीकात्मक नामों के साथ सूचीबद्ध किया है।

$ _ डिफ़ॉल्ट इनपुट और पैटर्न-खोज स्थान।
$ ARG
$। पिछले फ़ाइलखंड की वर्तमान इनपुट लाइन संख्या जो पढ़ी गई थी। फ़ाइलहैंड पर एक स्पष्ट क्लोज़ लाइन नंबर को रीसेट करता है।
$ एन.आर.
$ / इनपुट रिकॉर्ड विभाजक; डिफ़ॉल्ट रूप से newline। यदि नल स्ट्रिंग पर सेट किया जाता है, तो यह रिक्त रेखाओं को सीमांकक मानता है।
$ रुपये
$, प्रिंट ऑपरेटर के लिए आउटपुट फ़ील्ड विभाजक।
$ ओएफएस
$ \ प्रिंट ऑपरेटर के लिए आउटपुट रिकॉर्ड सेपरेटर।
$ ओआरएस
$ " "$" की तरह, सिवाय इसके कि यह दोहरे मान वाले स्ट्रिंग (या समान व्याख्या वाले स्ट्रिंग) में प्रक्षेपित सूची मूल्यों पर लागू होता है। डिफ़ॉल्ट एक स्थान है।
$ LIST_SEPARATOR
$; बहुआयामी सरणी अनुकरण के लिए सबस्क्रिप्ट विभाजक। डिफ़ॉल्ट "\ 034" है।
$ SUBSCRIPT_SEPARATOR
$ ^ एल फ़ॉर्मेटफ़ॉर्म करने के लिए एक प्रारूप क्या आउटपुट देता है। डिफ़ॉल्ट "f" है।
$ FORMAT_FORMFEED
$: वर्णों का वर्तमान सेट जिसके बाद एक स्ट्रिंग एक प्रारूप में निरंतरता फ़ील्ड (^ के साथ शुरू) को भरने के लिए टूट सकती है। डिफ़ॉल्ट "\ n" है।
$ FORMAT_LINE_BREAK_CHARACTERS
$ ^ एक प्रारूप लाइनों के लिए लिखने के संचयकर्ता का वर्तमान मूल्य।
$ संचायक
$ # प्रिंट किए गए नंबरों के लिए आउटपुट स्वरूप शामिल है (पदावनत)।
$ OFMT
$? स्थिति पिछले पाइप के पास, बैकटिक (``) कमांड, या सिस्टम ऑपरेटर द्वारा वापस आ गई।
$ CHILD_ERROR
$! यदि एक संख्यात्मक संदर्भ में उपयोग किया जाता है, तो त्रुटिपूर्ण चर के वर्तमान मूल्य को प्राप्त करता है, अंतिम सिस्टम कॉल त्रुटि की पहचान करता है। यदि एक स्ट्रिंग संदर्भ में उपयोग किया जाता है, तो संबंधित सिस्टम त्रुटि स्ट्रिंग पैदावार देता है।
$ OS_ERROR या $ ERRNO
$ @ अंतिम eval कमांड से पर्ल सिंटैक्स त्रुटि संदेश।
$ EVAL_ERROR
$$ इस स्क्रिप्ट को चलाने वाली पर्ल की प्रक्रिया।
$ PROCESS_ID या $ PID
$ < इस प्रक्रिया की वास्तविक उपयोगकर्ता आईडी (यूआईडी)।
$ REAL_USER_ID या $ UID
$> इस प्रक्रिया की प्रभावी उपयोगकर्ता आईडी।
$ EFFECTIVE_USER_ID या $ EUID
$ ( इस प्रक्रिया का वास्तविक समूह आईडी (gid)।
$ REAL_GROUP_ID या $ GID
$) इस प्रक्रिया के प्रभावी gid।
$ EFFECTIVE_GROUP_ID या $ EGID
$ 0 फ़ाइल का नाम होता है जिसमें पर्ल स्क्रिप्ट निष्पादित की जा रही है।
$ program_name
$ [ किसी ऐरे में पहले एलीमेंट का इंडेक्स और किसी सब्स्ट्रिंग में पहला कैरेक्टर। डिफ़ॉल्ट 0 है।
$] 1000 से विभाजित संस्करण प्लस पैचवेल लौटाता है।
$ PERL_VERSION
$ ^ डी डिबगिंग झंडे का वर्तमान मूल्य।
$ डिबगिंग
$ ^ ई कुछ प्लेटफार्मों पर विस्तारित त्रुटि संदेश।
$ EXTENDED_OS_ERROR
$ ^ एफ अधिकतम सिस्टम फ़ाइल डिस्क्रिप्टर, आमतौर पर 2।
$ SYSTEM_FD_MAX
$ ^ एच कुछ व्यावहारिक मॉड्यूल द्वारा सक्षम आंतरिक संकलक संकेत शामिल हैं।
$ ^ मैं एनेल-एडिट एक्सटेंशन का वर्तमान मूल्य। अयोग्य संपादन को अक्षम करने के लिए अपरिभाषित का उपयोग करें।
$ INPLACE_EDIT
$ ^ एम $ M की सामग्री का उपयोग आपातकालीन मेमोरी पूल के रूप में किया जा सकता है यदि पर्ल एक आउट-ऑफ-मेमोरी त्रुटि के साथ मर जाता है। $ M के उपयोग के लिए पर्ल के एक विशेष संकलन की आवश्यकता होती है। अधिक जानकारी के लिए INSTALL दस्तावेज देखें।
$ ^ हे ऑपरेटिंग सिस्टम का नाम समाहित करता है जिसे वर्तमान पर्ल बाइनरी के लिए संकलित किया गया था।
$ OSNAME
$ ^ पी आंतरिक ध्वज जिसे डीबगर साफ़ करता है ताकि वह स्वयं डिबग न करे।
$ PERLDB
$ ^ टी जिस समय से स्क्रिप्ट शुरू हुई थी, सेकंड में युग के बाद से।
$ BASETIME
$ ^ डब्ल्यू चेतावनी स्विच का वर्तमान मान या तो सही है या गलत है।
$ चेतावनी
$ ^ एक्स पर्ल बाइनरी के नाम को ही निष्पादित किया गया था।
$ EXECUTABLE_NAME
$ ARGV <ARGV> से पढ़ते समय वर्तमान फ़ाइल का नाम शामिल है।

वैश्विक सरणी विशेष चर

@ARGV स्क्रिप्ट के लिए अभिप्रेत कमांड लाइन तर्क युक्त सरणी।
@INC निर्माण, आवश्यकता, या निर्माणों का उपयोग करने के लिए पर्ल स्क्रिप्ट देखने के लिए स्थानों की सूची युक्त सरणी।
@F जिस सरणी में इनपुट लाइनें विभाजित हो जाती हैं जब -a कमांड-लाइन स्विच दिया जाता है।

ग्लोबल हैश स्पेशल वेरिएबल्स

% कांग्रेस हैश में प्रत्येक फ़ाइल के फ़ाइल नाम के लिए प्रविष्टियाँ हैं, जिन्हें डू या आवश्यकता के माध्यम से शामिल किया गया है।
% ENV आपके वर्तमान परिवेश वाला हैश।
% SIG हैश विभिन्न सिग्नल के लिए सिग्नल हैंडलर सेट करता था।

ग्लोबल स्पेशल फाइलहैंडल्स

ARGV विशेष फ़ाइलहैंडल जो @ARGV में कमांड लाइन फाइलनाम से अधिक है। आमतौर पर नल फ़ाइलहैंडल <> में लिखा जाता है।
STDERR किसी भी पैकेज में मानक त्रुटि के लिए विशेष फाइलहैंडल।
STDIN किसी भी पैकेज में मानक इनपुट के लिए विशेष फाइलहैंडल।
STDOUT किसी भी पैकेज में मानक आउटपुट के लिए विशेष फाइलहैंडल।
डेटा विशेष फाइलहैंडल जिसमें स्क्रिप्ट वाले फाइल में __END__ टोकन के बाद कुछ भी होता है। या, एक आवश्यक फ़ाइल में __DATA__ टोकन का अनुसरण करने वाली किसी भी चीज़ के लिए विशेष फ़ाइलहैंडल, जब तक आप एक ही पैकेज में डेटा पढ़ रहे हैं __DATA__ में पाया गया था।
_ (अंडरस्कोर) विशेष फाइलहैंडल का उपयोग अंतिम स्टेट, स्टैट, या फाइल टेस्ट ऑपरेटर से जानकारी को कैश करने के लिए किया जाता है।

वैश्विक विशेष स्थिरांक

__समाप्त__ आपके कार्यक्रम के तार्किक अंत का संकेत देता है। किसी भी निम्नलिखित पाठ को अनदेखा किया जाता है, लेकिन डेटा फ़ाइलहैंडल के माध्यम से पढ़ा जा सकता है।
__FILE__ आपके कार्यक्रम में उस बिंदु पर फ़ाइल नाम का प्रतिनिधित्व करता है जहां इसका उपयोग किया जाता है। तार में प्रक्षेपित नहीं।
__LINE__ वर्तमान लाइन नंबर का प्रतिनिधित्व करता है। तार में प्रक्षेपित नहीं।
__PACKAGE__ संकलित समय पर वर्तमान पैकेज नाम का प्रतिनिधित्व करता है, या कोई मौजूदा पैकेज नहीं होने पर अपरिभाषित है। तार में प्रक्षेपित नहीं।

नियमित अभिव्यक्ति विशेष चर

$ अंकों पिछले पैटर्न से मेल खाते हुए कोष्ठकों के संगत सेट द्वारा मिलान किए गए पाठ को सम्मिलित करता है। उदाहरण के लिए, पिछले नियमित अभिव्यक्ति में कोष्ठक के पहले सेट में जो कुछ भी शामिल था, $ 1 मैच।
$ & स्ट्रिंग पिछले सफल पैटर्न मैच से मेल खाता है।
$ मैच
$ ` पिछले सफल पैटर्न मैच द्वारा जो कुछ भी मिलान किया गया था उससे पहले स्ट्रिंग।
$ PREMATCH
$ ' पिछले सफल पैटर्न मैच द्वारा जो कुछ भी मिलान किया गया था उसके बाद स्ट्रिंग।
$ POSTMATCH
$ + अंतिम ब्रैकेट अंतिम खोज पैटर्न से मेल खाता है। यह उपयोगी है यदि आप नहीं जानते हैं कि वैकल्पिक पैटर्न का कौन सा मिलान किया गया था। उदाहरण के लिए: / संस्करण: (। *) | संशोधन: (। *) / && ($ rev = $ +);
$ LAST_PAREN_MATCH

फाइलहैंडल विशेष चर

$ | यदि नॉनज़ेरो पर सेट किया जाता है, तो वर्तमान में चुने गए आउटपुट चैनल पर हर लिखने या प्रिंट के बाद एक फ़्लफ़श (3) को मजबूर करता है।
$ OUTPUT_AUTOFLUSH
$% वर्तमान में चयनित आउटपुट चैनल की वर्तमान पृष्ठ संख्या।
$ FORMAT_PAGE_NUMBER
$ = वर्तमान में चयनित आउटपुट चैनल की वर्तमान पृष्ठ लंबाई (प्रिंट करने योग्य लाइनें)। डिफ़ॉल्ट 60 है।
$ FORMAT_LINES_PER_PAGE
$ - वर्तमान में चयनित आउटपुट चैनल के पृष्ठ पर शेष लाइनों की संख्या।
$ FORMAT_LINES_LEFT
$ ~ वर्तमान में चयनित आउटपुट चैनल के लिए वर्तमान रिपोर्ट प्रारूप का नाम। डिफ़ॉल्ट फ़ाइलहैंडल का नाम है।
$ FORMAT_NAME
$ ^ वर्तमान में चयनित आउटपुट चैनल के लिए वर्तमान टॉप-ऑफ-पेज प्रारूप का नाम। डिफ़ॉल्ट फ़ाइलहैंडल का नाम है जिसमें _TOP जोड़ा गया है।
$ FORMAT_TOP_NAME