खोज…


मूल प्रक्षेप

इंटरपोलेशन का अर्थ है कि पर्ल दुभाषिया वर्णों के विशेष अनुक्रमों के लिए उनके नाम और कुछ प्रतीकों (जो सीधे टाइप करना असंभव या कठिन है) के मूल्यों को प्रतिस्थापित करेगा (इसे भागने के रूप में भी जाना जाता है)। सबसे महत्वपूर्ण अंतर एकल और दोहरे उद्धरणों के बीच है: दोहरे उद्धरण संलग्न स्ट्रिंग को प्रक्षेपित करते हैं, लेकिन एकल उद्धरण नहीं करते हैं।

my $name = 'Paul';
my $age = 64;
print "My name is $name.\nI am $age.\n"; # My name is Paul.
                                         # I am 64.

परंतु:

print 'My name is $name.\nI am $age.\n'; # My name is $name.\nI am $age.\n

आप दोहरे उद्धरण चिह्नों के बजाय एकल उद्धरणों और qq{} बजाय q{} (किसी भी परिसीमन के साथ q{} उपयोग कर सकते हैं। उदाहरण के लिए, q{I'm 64} एक गैर-प्रक्षेपित स्ट्रिंग के भीतर एक एपोस्ट्रोफ का उपयोग करने की अनुमति देता है (अन्यथा यह स्ट्रिंग को समाप्त कर देगा)।

कथन:

print qq{$name said: "I'm $age".}; # Paul said: "I'm 64".
print "$name said: \"I'm $age\"."  # Paul said: "I'm 64".

एक ही काम करो, लेकिन पहले एक में आपको स्ट्रिंग के भीतर दोहरे उद्धरण चिह्नों से बचने की आवश्यकता नहीं है।

यदि आपका चर नाम आसपास के पाठ के साथ टकराता है, तो आप वाक्यविन्यास का उपयोग ${var} को अस्वीकार करने के लिए कर सकते हैं:

my $decade = 80;
print "I like ${decade}s music!"  # I like 80s music!

प्रक्षेप क्या है?

पर्ल वैरिएबल नामों को प्रक्षेपित करता है:

my $name = 'Paul';
print "Hello, $name!\n"; # Hello, Paul!

my @char = ('a', 'b', 'c');
print "$char[1]\n"; # b

my %map = (a => 125, b => 1080, c => 11);
print "$map{a}\n"; # 125

ऐरे को एक पूरे के रूप में प्रक्षेपित किया जा सकता है, उनके तत्वों को रिक्त स्थान द्वारा अलग किया जाता है:

my @char = ('a', 'b', 'c');
print "My chars are @char\n"; # My chars are a b c

पर्ल एक पूरे के रूप में हैश को प्रक्षेपित नहीं करता है:

my %map = (a => 125, b => 1080, c => 11);
print "My map is %map\n"; # My map is %map

और फ़ंक्शन कॉल (स्थिरांक सहित):

use constant {
    PI => '3.1415926'
};
print "I like PI\n";         # I like PI
print "I like " . PI . "\n"; # I like 3.1415926

पर्ल interpolates बच के साथ शुरू दृश्यों \ :

\t                  horizontal tab
\n                  newline
\r                  return
\f                  form feed
\b                  backspace
\a                  alarm (bell)
\e                  escape

\n का इंटरपोलेशन उस सिस्टम पर निर्भर करता है जहाँ प्रोग्राम काम कर रहा है: यह मौजूदा सिस्टम रूट्स के अनुसार एक नई लाइन कैरेक्टर (प्रोडक्ट्स) तैयार करेगा।

पर्ल \v _ इंटरपोलेट नहीं करता है, जिसका अर्थ है सी और अन्य भाषाओं में ऊर्ध्वाधर टैब।

उनके कोड का उपयोग करके चरित्र को संबोधित किया जा सकता है:

\x{1d11e}     𝄞 by hexadecimal code
\o{350436}    𝄞 by octal code
\N{U+1d11e}   𝄞 by Unicode code point

या यूनिकोड नाम:

\N{MUSICAL SYMBOL G CLEF}

देशी एन्कोडिंग में 0x00 से 0xFF तक के कोड वाले अक्षर छोटे रूप में संबोधित किए जा सकते हैं:

\x0a     hexadecimal
\012     octal

विशेष भागने के दृश्यों का उपयोग करके नियंत्रण चरित्र को संबोधित किया जा सकता है:

\c@      chr(0)
\ca      chr(1)
\cb      chr(2)
...
\cz      chr(26)
\c[      chr(27)
\c\      chr(28) # Cannot be used at the end of a string
                 # since backslash will interpolate the terminating quote
\c]      chr(29)
\c^      chr(30)
\c_      chr(31)
\c?      chr(127)

अपरकेस अक्षरों का एक ही अर्थ है: "\cA" == "\ca"

सभी बच अनुक्रमों की व्याख्या \N{...} को छोड़कर मंच पर निर्भर हो सकती है क्योंकि वे मंच का उपयोग करते हैं और एन्कोडिंग-निर्भर कोड।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow