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.

Tengdir greinar