我有以下perl代码:
use strict;
use warnings;
use Test::Cmd::Common;
my $path = "/something/not/available";
my $test = Test::Cmd::Common->new(string => 'File system operations');
eval{
$test->unlink("$path");
};
ok(!$@, "file unlike");
print "done.\n";
Run Code Online (Sandbox Code Playgroud)
$ test-> unlink()行将失败并抛出异常.但问题是:eval没有处理该异常并且代码执行正在被中断.
输出 :
$ perl test.pl
could not unlink files (/something/not/available): No such file or directory
NO RESULT for test at line 561 of /home/y/lib/perl5/site_perl/5.8/Test/Cmd/Common.pm (Test::Cmd::Common::unlink)
from line 9 of test.pl.
Run Code Online (Sandbox Code Playgroud)
eval在这里做得对吗?或者我误解了什么?
F.
Ale*_*nii 11
从Test :: Cmd :: Common的文档:"删除指定的文件.如果由于任何原因无法删除任何文件,则退出无结果.".通过查看源代码,Test :: Cmd :: Common调用Test :: Cmd-> no_result,确实如此
exit (2);
Run Code Online (Sandbox Code Playgroud)
"退出"不能被eval困住,所以它是预期的行为.
| 归档时间: |
|
| 查看次数: |
371 次 |
| 最近记录: |