Балдар кабыгы проксини Perlге кайра экспорттой албайт
Perl ENVин түздөн-түз коюп, прокси өзгөрмөлөрүн бир бала чакыруунун айланасында local менен чектеңиз, ошондо баштапкы маанилер кийин кайтат.
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 кабык талап кылбайт.