’n Kindskulp kan nie ’n proxy terug na Perl uitvoer nie
Stel Perl se ENV direk en lokaliseer proxyveranderlikes rondom een kindaanroep sodat die oorspronklike waardes daarna terugkeer.
’n Backtick-opdrag met export verander net die skulp wat vir daardie opdrag geskep word. Wanneer die skulp sluit, hou die ouer Perl-proses steeds sy vorige omgewing.
Stel eerder Perl se omgewingshash. local kan die wysiging binne een blok hou:
{
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;
}
Die kind erf die gelokaliseerde waardes. Vir ’n openbare HTTP-aflaai kan ’n eindpunt uit die HTTP-proxylys daardie URL-waardes lewer. Wanneer die blok eindig, herstel Perl die vorige inskrywings, ook hul vroeëre afwesigheid. Die system-uitset wat gewys word, is Perl se prosesstatus, nie ’n gedekodeerde HTTP-antwoordkode nie.
local is dinamies gegrens: ander Perl-kode wat binne daardie blok geroep word, sien ook die tydelike omgewing. Dit is nie ’n privaat bewaarplek vir geloofsbriewe per funksie nie.
Gaan die oorgeërfde hoofletter- en bypass-veranderlikes vir die gekose kliënt na. Die aflaaier besluit watter insette dit gebruik. ’n Proxy-instelling verander ook nie die proses se gebruikersidentiteit nie en vereis nie ’n aparte root-skulp net om oorgeërf te word nie.