Eng Kand-Shell kann e Proxy net zréck an Perl exportéieren
Setzt dem Perl seng ENV direkt a begrenzt d'Proxy-Variabelen mat local ronderëm een eenzegen Kandopruff, sou datt déi ursprénglech Wäerter duerno zréckkommen.
Eng Backtick-Kommando mat export ännert nëmmen d'Shell, déi fir genau déi Kommando erstallt gouf. Wann d'Shell ophält, huet de Perl-Eltereprozess nach ëmmer seng viregt Ëmgebung.
Setzt amplaz de Perl säin Ëmwelt-Hash. local kann d'Ännerung bannent engem Block halen:
{
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;
}
D'Kand ierft déi lokaliséiert Wäerter. Fir en ëffentlechen HTTP-Download kann en Endpunkt aus der HTTP-Proxy-Lëscht déi URL-Wäerter liwweren. Wann de Block ophält, stellt Perl déi viregt Entréen erëm hier, och hire viregten Absenz. D'Resultat vun system, dat ugewise gëtt, ass de Prozessstatus vum Perl, net en decodéierten HTTP-Antwertcode.
local huet en dynamesche Beräich: anere Perl-Code, deen an deem Block opgeruff gëtt, gesäit och déi temporär Ëmgebung. Et ass kee privaten Tableau fir Umeldungsinformatiounen pro Funktioun.
Iwwerpréift déi geierft Groussbuchstaben- a Bypass-Variabelen fir de gewielten Client. Den Downloader entscheet, wéi eng Inputen en notzt. Eng Proxy-Astellung ännert och net d'Benotzeridentitéit vum Prozess a verlaangt keng separat Root-Shell just well se geierft soll ginn.