沒有把 eval 的 manual 弄清楚,結果中了不少槍... 以這段 code 來說:
#!/usr/bin/env perl use strict; use warnings; use Data::Dumper; sub a { eval { return 'Inside eval'; }; return undef; } print Dumper a(); __END__
輸出結果會是 undef
,而非 Inside eval
,因為:
the value returned is the value of the last expression evaluated inside the mini-program; a return statement may be also used, just as with subroutines.
沒專心看 manual 的結果 XD
不過這還是沒解決我遇到在 eval
裡面仍然會因為 croak
而結束的情況... 再加油吧 :o