सबसे पहले: आप जानते हैं कि आप पर्यावरण चरों तक पहुंचने के लिए $ENV{myvariable}
का उपयोग कर सकते हैं, है ना? और m//
, s///
और tr///
का उपयोग करते समय आपको $_
निर्दिष्ट करने की आवश्यकता नहीं है?
इसके अलावा, यदि आप पर्ल पर वेरिएबल्स पास करना चाहते हैं, तो ऐसा करने के अन्य तरीके भी हैं जो आपके पर्ल कोड में खोल चर को इंटरपोल करने की कोशिश कर रहे हैं।
perl -we 'my ($var1, $var2, $var3) = @ARGV;' "$MYFOO" "$BAR" "$baz"
यदि आपके शैल चर में सफेद जगह नहीं है, तो आप उद्धरण के साथ बांट सकते हैं।
अब, यदि आप -p
या -n
स्विच का उपयोग करना चाहते हैं, तो इसके आसपास के तरीके भी हैं।
perl -pwe 'BEGIN { my $var1 = shift; my $var2 = shift } #code goes here'
"$MYFOO" "$BAR" file1 file2
एक बयान शुरू में shift
का उपयोग करना इतना है कि वे -p
और -n
स्विच की अंतर्निहित while
पाश का उपयोग नहीं करतीं @ARGV
से चर निकाल देंगे।
ध्यान दें: हास्यास्पद मत बनो। शैल प्रोग्रामिंग प्रश्न बिल्कुल स्टैक ओवरफ्लो पर हैं। – tchrist
आपको '$ _' चर का उपयोग करने के लिए * की आवश्यकता नहीं है *। – TLP
@ टीएलपी - यह सिर्फ एक उदाहरण था। वास्तविक लिपि में, मुझे वास्तव में * इसकी आवश्यकता है *। :) – Rogach