შვილობილი shell ვერ დააექსპორტებს პროქსის უკან Perl-ში
დააყენეთ Perl-ის ENV პირდაპირ და local-ით შემოზღუდეთ პროქსის ცვლადები ერთი შვილობილი გამოძახების გარშემო, რათა საწყისი მნიშვნელობები შემდეგ დაბრუნდეს.
backtick ბრძანება, რომელიც export-ს შეიცავს, ცვლის მხოლოდ იმ shell-ს, რომელიც ამ ბრძანებისთვის შეიქმნა. როცა shell სრულდება, მშობელი Perl პროცესი კვლავ თავის წინა გარემოს ინარჩუნებს.
სამაგიეროდ დააყენეთ Perl-ის გარემოს hash. 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 shell-ს მხოლოდ მისი მემკვიდრეობისთვის.