Një shell fëmijë nuk mund të eksportojë një proxy përsëri në Perl
Vendosni ENV e Perl drejtpërdrejt dhe kufizoni variablat e proxy me local rreth një thirrjeje fëmije, që vlerat origjinale të kthehen më pas.
Një komandë backtick që përmban export ndryshon vetëm shell-in e krijuar për atë komandë. Kur shell-i mbaron, procesi prind i Perl vazhdon të ketë mjedisin e mëparshëm.
Në vend të kësaj vendosni hash-in e mjedisit të Perl. local mund ta mbajë ndryshimin brenda një blloku:
{
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;
}
Fëmija trashëgon vlerat e lokalizuara. Për një shkarkim publik HTTP, një pikë fundore nga lista e proxy-ve HTTP mund të sigurojë ato vlera URL. Kur blloku mbaron, Perl rikthen shënimet e mëparshme, përfshirë mungesën e tyre të mëparshme. Rezultati system i shfaqur është statusi i procesit të Perl, jo një kod përgjigjeje HTTP i dekoduar.
local ka shtrirje dinamike: kodi tjetër Perl i thirrur brenda atij blloku sheh gjithashtu mjedisin e përkohshëm. Nuk është një depo private kredencialesh për çdo funksion.
Rishikoni variablat e trashëguara me shkronja të mëdha dhe variablat e anashkalimit për klientin e zgjedhur. Është shkarkuesi ai që vendos cilat hyrje konsumon. Një cilësim proxy gjithashtu nuk ndryshon identitetin e përdoruesit të procesit dhe nuk kërkon një shell root të veçantë vetëm që të trashëgohet.