En barneskal kan ikke eksportere en proxy tilbage til Perl
Sæt Perls ENV direkte, og lokaliser proxyvariabler omkring ét underordnet kald, så de oprindelige værdier vender tilbage bagefter.
En backtick-kommando med export ændrer kun den skal, der blev oprettet til netop den kommando. Når skallen afsluttes, har den overordnede Perl-proces stadig sit tidligere miljø.
Sæt i stedet Perls miljøhash. local kan holde ændringen inden for én blok:
{
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;
}
Det underordnede miljø arver de lokaliserede værdier. Til en offentlig HTTP-download kan et endepunkt fra HTTP-proxylisten levere de URL-værdier. Når blokken slutter, gendanner Perl de tidligere poster, også deres tidligere fravær. Det viste system-resultat er Perls processtatus, ikke en afkodet HTTP-svarkode.
local har dynamisk scope: anden Perl-kode, der kaldes inde i blokken, kan også se det midlertidige miljø. Det er ikke et privat legitimationslager pr. funktion.
Gennemgå nedarvede variabler med store bogstaver og bypass-variabler for den valgte klient. Downloaderen afgør, hvilke input den bruger. En proxyindstilling ændrer heller ikke processens brugeridentitet eller kræver en separat root-skal alene for at blive nedarvet.