export असलेला बॅकटिक कमांड फक्त त्या कमांडसाठी तयार केलेला शेल बदलतो. शेल बाहेर पडल्यावर पालक Perl प्रक्रियेकडे अजूनही त्याचे पूर्वीचे वातावरण असते.

त्याऐवजी Perl चा एन्व्हायर्नमेंट हॅश सेट करा. 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 शेलही लागत नाही.

संबंधित लेख