چائلڈ شیل پراکسی کو واپس Perl میں برآمد نہیں کر سکتا
Perl کا ENV براہ راست سیٹ کریں اور ایک چائلڈ کال کے گرد local سے پراکسی متغیرات کو محدود کریں تاکہ اصل قدریں بعد میں واپس آ جائیں۔
export والی backtick کمانڈ صرف اسی کمانڈ کے لیے بنائی گئی شیل کو بدلتی ہے۔ شیل کے باہر نکلنے پر پیرنٹ Perl عمل کے پاس اب بھی اپنا سابقہ ماحول ہوتا ہے۔
اس کے بجائے Perl کا ماحول ہیش سیٹ کریں۔ local تبدیلی کو ایک بلاک کے اندر رکھ سکتا ہے:
{
local $ENV{http_proxy} = 'http://proxy.example:8080';
local $ENV{https_proxy} = 'http://proxy.example:8080';
my $status = system {
'/usr/bin/curl'
} '/usr/bin/curl', '--fail', '--max-time', '30',
'https://downloads.example/data.csv';
die "Downloader failed: $status" if $status != 0;
}
چائلڈ local کی گئی قدروں کو وراثت میں پاتا ہے۔ عوامی HTTP ڈاؤن لوڈ کے لیے HTTP پراکسی فہرست کا کوئی اینڈ پوائنٹ وہ URL قدریں فراہم کر سکتا ہے۔ بلاک ختم ہونے پر Perl پچھلی اندراجات بشمول اُن کی سابقہ عدم موجودگی بحال کر دیتا ہے۔ دکھایا گیا system نتیجہ Perl کے عمل کی حالت ہے، ڈی کوڈ شدہ HTTP جوابی کوڈ نہیں۔
local کا متحرک دائرہ ہے: اُس بلاک کے اندر بلایا گیا دیگر Perl کوڈ بھی عارضی ماحول دیکھتا ہے۔ یہ فی فنکشن نجی اسناد کا ذخیرہ نہیں ہے۔
منتخب کلائنٹ کے لیے وراثت میں ملنے والے بڑے حروف اور بائی پاس متغیرات کا جائزہ لیں۔ کون سے ان پٹ استعمال ہوں گے یہ ڈاؤن لوڈر طے کرتا ہے۔ پراکسی سیٹنگ عمل کی صارف شناخت بھی نہیں بدلتی اور صرف وراثت میں ملنے کے لیے الگ root شیل کی بھی ضرورت نہیں۔