សែលកូនមិនអាចនាំចេញប្រូកស៊ីត្រឡប់ទៅ Perl វិញបានទេ
កំណត់ ENV របស់ Perl ដោយផ្ទាល់ ហើយដាក់កំណត់អថេរប្រូកស៊ីដោយ local ជុំវិញការហៅកូនមួយ ដើម្បីឱ្យតម្លៃដើមត្រឡប់មកវិញក្រោយមក។
ពាក្យបញ្ជា backtick ដែលមាន export ផ្លាស់ប្តូរតែសែលដែលបានបង្កើតសម្រាប់ពាក្យបញ្ជានោះប៉ុណ្ណោះ។ នៅពេលសែលចេញ ដំណើរការ Perl មេនៅតែមានបរិស្ថានមុនរបស់វា។
ជំនួសមកវិញ កំណត់ hash បរិស្ថានរបស់ 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;
}
កូនទទួលមរតកតម្លៃដែលបានធ្វើមូលដ្ឋានីយកម្ម។ សម្រាប់ការទាញយក HTTP សាធារណៈ ចំណុចបញ្ចប់ពី បញ្ជីប្រូកស៊ី HTTP អាចផ្តល់តម្លៃ URL ទាំងនោះ។ នៅពេលប្លុកបញ្ចប់ Perl ស្តារធាតុមុន រួមទាំងអវត្តមានមុនរបស់ពួកវា។ លទ្ធផល system ដែលបានបង្ហាញគឺស្ថានភាពដំណើរការ Perl មិនមែនកូដឆ្លើយតប HTTP ដែលបានឌិកូដទេ។
local មានវិសាលភាពថាមវន្ត៖ កូដ Perl ផ្សេងទៀតដែលហៅក្នុងប្លុកនោះក៏ឃើញបរិស្ថានបណ្តោះអាសន្នដែរ។ វាមិនមែនជាឃ្លាំងសម្ងាត់ឯកជនក្នុងមួយអនុគមន៍ទេ។
ពិនិត្យអថេរមរតកអក្សរធំ និងអថេររំលងសម្រាប់អតិថិជនដែលបានជ្រើសរើស។ កម្មវិធីទាញយកជាអ្នកសម្រេចថាតើប្រើធាតុចូលណា។ ការកំណត់ប្រូកស៊ីក៏មិនផ្លាស់ប្តូរអត្តសញ្ញាណអ្នកប្រើរបស់ដំណើរការ ហើយក៏មិនទាមទារសែល root ដាច់ដោយឡែកដោយសារតែត្រូវទទួលមរតកនោះទេ។