Kmand b'backtick li fih export ibiddel biss il-qoxra maħluqa għal dak il-kmand. Meta l-qoxra tintemm, il-proċess Perl ġenitur għad għandu l-ambjent preċedenti tiegħu.

Minflok, issettja l-hash tal-ambjent tal-Perl. local jista' jżomm il-bidla fi ħdan blokka waħda:

{
    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;
}

It-tifel jiret il-valuri lokalizzati. Għal download HTTP pubbliku, punt tat-tmiem mil-lista tal-proxy HTTP jista' jipprovdi dawk il-valuri tal-URL. Meta tintemm il-blokka, il-Perl jirrestawra l-entrati preċedenti, inkluża n-nuqqas preċedenti tagħhom. Ir-riżultat system li jintwera huwa l-istat tal-proċess tal-Perl, mhux kodiċi ta' risposta HTTP dekodifikat.

local għandu ambitu dinamiku: kodiċi Perl ieħor imsejjaħ f'dik il-blokka jara wkoll l-ambjent temporanju. Mhuwiex maħżen privat ta' kredenzjali għal kull funzjoni.

Irrevedi l-varjabbli ereditati b'ittri kbar u l-varjabbli ta' bypass għall-klijent magħżul. Id-downloader jiddeċiedi liema inputs jikkonsma. Issettjar tal-proxy lanqas ma jbiddel l-identità tal-utent tal-proċess u lanqas jeħtieġ qoxra root separata sempliċement biex tinkiseb b'eredità.

Artikli relatati