do EXPR
Naudoja EXPR reikšmę kaip failo vardą ir paleidžia failo turinį kaip Perl skriptą. Pirminis panaudojimas yra įtraukti paprogrames iš Perl paprogramių bibliotekos.
do 'stat.pl';
kaip ir
eval `cat stat.pl`;
, skirtumas tik tas, kad šis variantas efektyvesnis trumpesnis, seka einamąjį failo vardą klaidų žinutėms, praieško @INC bibliotekas ir atnaujina %INC
, jei failas randamas. Žr. "Predefined
Names" perlvar dėl šių kintamųjų. Taip pat skiriasi tuo, kad kode, sulygintam su do FILENAME
negali pastebėti leksikos įdedamoje srityje; eval STRING
gali. Tai taip pat, kaip ne kaip, kad šis variantas kiekvieną kartą pernagrinėja (perparsina) failą kiekvieną kartą, kai jis iškviečiamas, taigi, greičiausia aišku, kad naudoti jį cikle nepatartina.
Jei do
negali nuskaityti failo, gražina undef ir užsetina $!
klaidai. Jei do
gali nuskaityti failą, bet negali jo sukompiliuoti, tada jis gražina undef ir užstato klaidos pranešimą į
$@
. Jei failas sėkmingai sukompiliuojamas, do
gražina paskutinio įvertinto pranešimo reikšmę.
Pažymėtina, kad bibliotekos modulių įterpimas geriau būtų daromas su use
ir require
operatoriais, kurie taip pat automatiškai pratikrina klaidas ir reikalui esant iškelia prieštaravimą.
Do
gali kilti noras panaudoti programos konfigūraciniame faile. Rankinis klaidų tikrinimas gali būtų padarytas taip:
# nuskaitomi config failai: pirmiausia sistemos, paskui vartotojo
for $file ("/share/prog/defaults.rc",
"$ENV{HOME}/.someprogrc")
{
unless ($return = do $file) {
warn "couldn't parse $file: $@" if $@;
warn "couldn't do $file: $!" unless defined $return;
warn "couldn't run $file" unless $return;
}
}