Barnaskel getur ekki flutt proxy aftur inn í Perl
Stilltu ENV Perls beint og afmarkaðu proxybreytur með local í kringum eitt barnakall svo upprunalegu gildin komi aftur síðar.
Backtick-skipun sem inniheldur export breytir aðeins skelinni sem var búin til fyrir þá skipun. Þegar skelin endar hefur foreldraferlið Perl enn fyrra umhverfi sitt.
Stilltu í staðinn umhverfishash Perls. local getur haldið breytingunni innan eins blokks:
{
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;
}
Barnið erfir staðfærðu gildin. Fyrir opinbera HTTP-niðurhal getur endapunktur úr HTTP-proxylistanum veitt þessi URL-gildi. Þegar blokkin endar endurheimtir Perl fyrri færslurnar, þar á meðal fyrra fjarveru þeirra. Sýnt system-niðurstaða er ferlisstaða Perls, ekki afkótaður HTTP-svarskóði.
local hefur dýnamískt umfang: annar Perl-kóði sem kallaður er innan blokkarinnar sér líka tímabundið umhverfið. Það er ekki einkaaðgangsgeymsla fyrir hverja fall.
Farðu yfir arfgerðar hástafa- og framhjábreytur fyrir valinn biðlara. Niðurhalsforritið ræður því hvaða inntak það notar. Proxy-stilling breytir heldur ekki notandaaðsendingu ferlisins og krefst ekki sérstakrar root-skeljar eingöngu til að erfast.