perl中eval与die
perl中使用eval捕获错误,在eval中使用die和在eval外使用die的区别,举个小例子咯。
1 #!/usr/bin/perl 2 3 4 sub main { 5 print "hello\n"; 6 eval { 7 print "in eval\n"; 8 my_die "in my_die"; 9 print "world\n"; 10 }; 11 if (my $err = $@ ){ 12 my_die "has err:$err"; 13 print "in err\n"; 14 } 15 print "world\n"; 16 } 17 main();
# perl test_eval1.pl
hello
in eval
has err:in my_die at test_eval1.pl line 8.
将代码中的12行注释掉
#perl test_eval2.pl
hello
in eval
in err
world
eval中使用die会比捕获,只会停止执行eval中的代码,然后跳出eval继续执行;eval外使用die,则会直接停止执行整个函数
 
                    
                     
                    
                 
                    
                 
 
         
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号