export бар backtick пәрмені тек сол пәрмен үшін жасалған қабықты өзгертеді. Қабық шыққанда, ата-аналық Perl процесінің бұрынғы ортасы әлі де сақталады.

Оның орнына Perl ортасының hash мәнін орнатыңыз. local өзгерісті бір блок ішінде ұстай алады:

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

Еншілес процесс local мәндерді мұраланады. Жалпыға ашық HTTP жүктеу үшін HTTP прокси тізімінен алынған соңғы нүкте сол URL мәндерін бере алады. Блок біткенде Perl бұрынғы жазбаларды, олардың бұрын болмағанын да қоса, қалпына келтіреді. Көрсетілетін system нәтижесі — Perl процесінің күйі, декодталған HTTP жауап коды емес.

local динамикалық ауқымға ие: сол блок ішінде шақырылған басқа Perl коды да уақытша ортаны көреді. Бұл әр функцияға арналған жеке тіркелгі деректер қоймасы емес.

Таңдалған клиент үшін мұраланған бас әріпті және айналып өту айнымалыларын қарап шығыңыз. Қандай кірістерді пайдалануды жүктеуші шешеді. Прокси параметрі де процестің пайдаланушы сәйкестігін өзгертпейді және тек мұралану үшін бөлек root қабық талап етпейді.

Қатысты мақалалар