Backtick komanda ar export maina tikai tai komandai izveidoto čaulu. Kad čaula beidzas, vecākprocess Perl joprojām saglabā savu iepriekšējo vidi.

Tā vietā iestatiet Perl vides hash. local var noturēt izmaiņas vienā blokā:

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

Bērns manto lokalizētās vērtības. Publiskai HTTP lejupielādei galapunkts no HTTP starpniekserveru saraksta var nodrošināt šīs URL vērtības. Kad bloks beidzas, Perl atjauno iepriekšējos ierakstus, tostarp to iepriekšējo neesamību. Parādītais system rezultāts ir Perl procesa statuss, nevis atšifrēts HTTP atbildes kods.

local ir dinamiska tvēruma: cits Perl kods, kas izsaukts šajā blokā, arī redz pagaidu vidi. Tas nav privāta akreditācijas datu krātuve katrai funkcijai.

Pārbaudiet mantotos lielo burtu un apiešanas mainīgos izvēlētajam klientam. Kādus ievaddatus izmantot, izlemj lejupielādētājs. Starpniekservera iestatījums arī nemaina procesa lietotāja identitāti un neprasa atsevišķu root čaulu tikai tāpēc, lai to mantotu.

Saistītie raksti