eval{}; 中のreturn(); に注意

eval{}; 中のreturn(); に注意

例えば

sub xxx{
eval{
my $a=1;
if($a){return(0);}
};
}

if(&xxx){print"abc";}
else{print"def";}

などとするとうまくいかない。

sub xxx{
eval{
my $a=1;
if($a){die;}
};
if($@){return(0);}
}

などとしよう。