İçinde export bulunan bir backtick komutu yalnızca o komut için oluşturulan kabuğu değiştirir. Kabuk çıktığında üst Perl süreci hâlâ önceki ortamını korur.

Bunun yerine Perl'in ortam hash'ini ayarlayın. local, değişikliği tek bir blok içinde tutabilir:

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

Alt süreç, yerelleştirilmiş değerleri devralır. Genel bir HTTP indirmesi için HTTP proxy listesindeki bir uç nokta bu URL değerlerini sağlayabilir. Blok bittiğinde Perl önceki girdileri, daha önce yok olmaları dahil, geri yükler. Görüntülenen system sonucu Perl'in süreç durumudur, çözülmüş bir HTTP yanıt kodu değildir.

local dinamik kapsama sahiptir: o blok içinde çağrılan diğer Perl kodu da geçici ortamı görür. Bu, her işlev için özel bir kimlik bilgisi deposu değildir.

Seçilen istemci için devralınan büyük harf ve atlama değişkenlerini gözden geçirin. Hangi girdileri kullanacağına indirici karar verir. Proxy ayarı da sürecin kullanıcı kimliğini değiştirmez ve yalnızca devralınması için ayrı bir root kabuğu gerektirmez.

İlgili makaleler