ಚೈಲ್ಡ್ ಶೆಲ್ ಪ್ರಾಕ್ಸಿಯನ್ನು 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 ಶೆಲ್ ಅಗತ್ಯವಿಲ್ಲ.