हमेशा की पर्ल TIMTOWTDI साथ।
मैंने सोचा कि मैं कई विकल्प प्रस्तुत होता है, और वे क्या की तरह अगर वे सामान्य रूप से लिखा गया था लगेगा दिखा। यदि आप कमांड लाइन विकल्प perldoc perlrun
के बारे में और जानना चाहते हैं तो एक उपयोगी संसाधन है।
ये सब एक ही चीज़ आउटपुट करते हैं। अपवाद के साथ कि उनमें से कुछ अंत में एक नई लाइन मुद्रित नहीं करते हैं।
echo '48 54 54 50' | perl -0x20 -pe'$_=chr hex$_'
echo '48 54 54 50' | perl -0x20 -ne'print chr hex$_'
echo '48 54 54 50' | perl -0777 -anE'say map chr,map hex,@F'
echo '48 54 54 50' | perl -0777 -anE'say map{chr hex$_}@F'
echo '48 54 54 50' | perl -0apple'$_=chr hex$_' -0x20
echo '48 54 54 50' | perl -apple'$_=join"",map{chr hex}@F'
echo '48 54 54 50' | perl -lanE'say map{chr hex}@F'
निम्नलिखित उदाहरणों में से कुछ उदाहरण देखेंगे कि वे सामान्य रूप से लिखे गए थे। यदि आप यह जानना चाहते हैं कि उनमें से बाकी क्या करते हैं, तो निश्चित रूप से perldoc perlrun
देखें।
perl -0x20 -pe'$_=chr hex$_'
यह एक काफी सीधे आगे है। यह शायद यहां सबसे अच्छा उदाहरण है, और यह भी सबसे छोटा है। यह दिखाता है कि रिक्त स्थान लाइनों को अलग करने के लिए उपयोग किए जाते हैं, ताकि लूप के अंदर से निपटने के लिए केवल एक ही अक्षर हो।
# perl -0x20 -pe'$_=chr hex$_'
$/ = " "; # -0 (input separator)
while(<>){
$_ = chr hex $_;
} continue {
print $_;
}
perl -0apple'$_=chr hex$_' -0x20
यह एक कुछ कमांड लाइन विकल्पों को कुछ भी उपयोगी नहीं करते है।
- पहले
-0
विकल्प ताकि -l
रिक्त स्ट्रिंग पर उत्पादन विभाजक सेट करता है। जो वास्तव में आउटपुट विभाजक के लिए डिफ़ॉल्ट है।
- दो
-p
विकल्प हैं जहां कोई पर्याप्त होगा।
-a
विकल्प @F
सरणी सेट है, लेकिन हम वास्तव में यह प्रयोग नहीं करते।
मूल रूप से मैं -a
-l
और एक दूसरे -p
इस्तेमाल किया ताकि विकल्पों सेब वर्तनी होगा। अन्यथा यह अंतिम उदाहरण के समान है।
echo '48 54 54 50' | perl -0x20 -pe'$_=chr hex$_'
# perl -0apple'$_=chr hex$_' -0x20
$/ = ""; # -0 (input separator)
$\ = $/; # -l (output separator)
$/ = " "; # -0x20 (input separator)
while(<>){
@F = split " ", $_; # -a (unused)
$_ = chr hex $_;
} continue {
print $_;
}
perl -lanE'say map{chr hex}@F'
मैं सोचा मैं पहले से ही वर्तनी सेब, मैं भी लेन वर्तनी हो सकता है।
-l
क्योंकि हम पहले say
उपयोग कर रहे हैं, वास्तव में उपयोगी नहीं है। ताकि हम say
इस्तेमाल कर सकते हैं
- प्रयुक्त
-E
बजाय -e
।
# perl -lanE'say map{chr hex}@F'
$\ = $/; # -l (output separator set to "\n")
while(<>){
@F = split " ", $_; # -a
say map { chr hex $_ } @F;
}
'पर्ल -lnE 'y/// घ; पैक "एच *", $ _ '' – hobbs