Vaiko apvalkalas negali eksportuoti tarpinio serverio atgal į Perl
Nustatykite Perl ENV tiesiogiai ir apribokite tarpinio serverio kintamuosius su local aplink vieną vaiko iškvietimą, kad pradinės reikšmės vėliau sugrįžtų.
Backtick komanda su export keičia tik tam komandai sukurtą apvalkalą. Kai apvalkalas baigiasi, pirminis Perl procesas vis dar turi ankstesnę aplinką.
Vietoje to nustatykite Perl aplinkos hash. local gali išlaikyti pakeitimą viename bloke:
{
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;
}
Vaikas paveldi lokalizuotas reikšmes. Viešam HTTP atsisiuntimui galinis taškas iš HTTP tarpinių serverių sąrašo gali pateikti tas URL reikšmes. Kai blokas baigiasi, Perl atkuria ankstesnius įrašus, įskaitant jų ankstesnį nebuvimą. Rodomas system rezultatas yra Perl proceso būsena, o ne iššifruotas HTTP atsakymo kodas.
local turi dinaminę sritį: kitas Perl kodas, iškviestas tame bloke, taip pat mato laikiną aplinką. Tai nėra privati kiekvienos funkcijos prisijungimo duomenų saugykla.
Peržiūrėkite paveldėtus didžiųjų raidžių ir apėjimo kintamuosius pasirinktam klientui. Kokius įvesties duomenis naudoti, sprendžia siuntimo programa. Tarpinio serverio nustatymas taip pat nekeičia proceso naudotojo tapatybės ir nereikalauja atskiro root apvalkalo vien tam, kad būtų paveldėtas.