In backtick-opdracht mei export feroaret allinnich de skulp dy't foar dy opdracht makke is. As de skulp einiget, hat it âlderproses fan Perl noch syn eardere omjouwing.

Set ynstee de omjouwingshash fan Perl. local kin de feroaring binnen ien blok hâlde:

{
    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 bern erft de lokalisearre wearden. Foar in iepenbiere HTTP-download kin in einpunt út 'e HTTP-proxylist dy URL-wearden leverje. As it blok einiget, stelt Perl de eardere ynfieringen werom, ek har eardere ôfwêzigens. It toande system-resultaat is de prosesstatus fan Perl, net in dekodearre HTTP-antwurdkoade.

local hat dynamys berik: oare Perl-koade dy't binnen dat blok oproppen wurdt, sjocht ek de tydlike omjouwing. It is gjin privee bewarplak foar tagongsgegevens per funksje.

Besjoch de erflike haadletter- en bypass-fariabelen foar de keazen klant. De downloader beslút hokker ynfier er brûkt. In proxyynstelling feroaret ek net de brûkersidentiteit fan it proses en freget gjin aparte root-skulp allinnich om erfd te wurden.

Relatearre artikelen