যদিও bashদৃষ্টিভঙ্গি আচ্ছাদিত করা হয়েছে, আপনার প্রশ্নের আমাকে মনে করি আপনি ঐ ভেরিয়েবল জুড়ে করেছি তোলে perlকোড।
$&এবং এতে $_বিশেষ ভেরিয়েবল রয়েছে perl। এবং এগুলি বিশেষত perlশেল কোড থেকে কল করা কোডে পাওয়া যায় ।
$_ডিফল্ট পরিবর্তনশীল অনেক perlফাংশন এবং অপারেটর কাজ করে। সেই পরিবর্তনশীলটি ইনপুট অপারেটরগুলির দ্বারা সেট করা ডিফল্ট পরিবর্তনশীল।
ভিতরে:
perl -pe 'some-code' < some-input
কিছু-কোড কিছু ইনপুটটির প্রতিটি লাইনের জন্য চালিত হয়, এতে লাইনটি সঞ্চিত থাকে $_এবং $_কিছু কোড চালানোর পরে এর সামগ্রীটি মুদ্রিত হয়।
s/regex/replacement/অপারেটর উপর কাজ করে $_ডিফল্টরূপে। সুতরাং আপনি প্রায়শই এই জাতীয় জিনিসগুলি পান:
perl -pe 's/foo/bar/'
যা সংক্ষিপ্ত:
perl -pe '$_ =~ s/foo/bar/'
(উপরে, $_যতক্ষণ শেল সম্পর্কিত, তত্ক্ষণাত perlদোভাষীকে দেওয়া একটি ভারব্যাটিম আর্গুমেন্টের অংশ , এটি শেল ভেরিয়েবল নয় That সেই ভারব্যাটিম আর্গুমেন্টটি perlএক্সপ্রেশন ( -e) হিসাবে প্রেরণ করা হয়েছে perl, এবং এটি তার জন্য perlএটি ব্যাখ্যা করা হয়েছে পরিবর্তনশীল)।
$&আর একটি বিশেষ perlপরিবর্তনশীল যা সর্বশেষ ম্যাচিং অপারেটর ( m/.../, s/.../.../...) এর সাথে মিলে যা কিছুতে প্রসারিত হয় ।
এই ক্ষেত্রে:
$ echo foo | perl -lne '
print "The last character in $_ is $&" if m/.$/'
The last character in foo is o
বা:
$ echo foo bar | perl -pe 's/[aeiou]+/<$&>/g'
f<oo> b<a>r