Ukaz z backtickom, ki vsebuje export, spremeni le lupino, ustvarjeno za ta ukaz. Ko lupina konča, ima nadrejeni proces Perla še vedno svoje prejšnje okolje.

Namesto tega nastavite hash okolja Perla. local lahko spremembo zadrži znotraj enega bloka:

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

Podrejeni proces podeduje lokalizirane vrednosti. Za javno prenašanje po HTTP lahko končna točka s seznama proxyjev HTTP zagotovi te vrednosti URL. Ko se blok konča, Perl obnovi prejšnje vnose, vključno z njihovo prejšnjo odsotnostjo. Prikazan rezultat system je stanje procesa Perla, ne dekodirana koda odgovora HTTP.

local ima dinamični obseg: druga koda Perla, klicana znotraj tega bloka, prav tako vidi začasno okolje. To ni zasebno shramba poverilnic za vsako funkcijo.

Preglejte podedovane spremenljivke z velikimi črkami in spremenljivke za obhod za izbranega odjemalca. Kateri vhodi se uporabijo, odloči prenašalnik. Nastavitev proxyja prav tako ne spremeni uporabniške identitete procesa in ne zahteva ločene lupine root samo zato, da bi bila podedovana.

Sorodni članki