Az exportot tartalmazó backtick-parancs csak az adott parancshoz létrehozott héjat módosítja. Amikor a héj kilép, a szülő Perl-folyamatnak továbbra is a korábbi környezete van.

Állítsa be helyette a Perl környezeti hash-ét. A local a módosítást egy blokkon belül tarthatja:

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

A gyermek örökli a lokalizált értékeket. Nyilvános HTTP-letöltéshez a HTTP-proxylistából származó végpont szolgáltathatja ezeket az URL-értékeket. Amikor a blokk véget ér, a Perl visszaállítja a korábbi bejegyzéseket, beleértve azok korábbi hiányát is. A megjelenített system-eredmény a Perl folyamatállapota, nem egy dekódolt HTTP-válaszkód.

A local dinamikus hatókörű: a blokkon belül meghívott más Perl-kód is látja az ideiglenes környezetet. Ez nem függvényenkénti privát hitelesítőadat-tár.

Tekintse át az örökölt nagybetűs és megkerülő változókat a kiválasztott klienshez. Hogy mely bemeneteket használja, arról a letöltő dönt. A proxybeállítás sem változtatja meg a folyamat felhasználói identitását, és nem igényel külön root héjat csak azért, hogy öröklődjön.

Kapcsolódó cikkek