ଚାଇଲ୍ଡ ଶେଲ ପ୍ରକ୍ସିକୁ ପୁନଃ Perl କୁ ରପ୍ତାନି କରିପାରିବ ନାହିଁ
Perl ର ENV ସିଧାସଳଖ ସେଟ କରନ୍ତୁ ଏବଂ ଗୋଟିଏ ଚାଇଲ୍ଡ କଲ ଚାରିପାଖରେ local ସହିତ ପ୍ରକ୍ସି ଭେରିଏବଲଗୁଡ଼ିକୁ ସୀମିତ କରନ୍ତୁ ଯାହାଫଳରେ ମୂଳ ମୂଲ୍ୟଗୁଡ଼ିକ ପରେ ଫେରି ଆସିବ।
export ଥିବା backtick ନିର୍ଦ୍ଦେଶ ସେହି ନିର୍ଦ୍ଦେଶ ପାଇଁ ସୃଷ୍ଟି ହୋଇଥିବା ଶେଲକୁ ହିଁ ବଦଳାଏ। ଶେଲ ବାହାରକୁ ଗଲାପରେ ପିତୃ 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 ଶେଲ ମଧ୍ୟ ଆବଶ୍ୟକ କରେ ନାହିଁ।