use strict;
use warnings;
use Date::Parse;
use Try::Tiny;
my $etime = time;
my $stime = "";
try{
my $dur = $etime - str2time($stime);
} catch {
print "error: $!\n";
};
输出
Use of uninitialized value in subtraction (-) at perl_try.pl line 10.
任何人都知道怎么抓住这个? 这不会在catch块中被捕获
答案 0 :(得分:5)
尝试:: Tiny在这里没有做任何事情,因为消息只是一个警告,而不是例外。
decode()
解析str2time
并返回unix时间值,或者在失败时返回undef。
因此,如果您想在DATE
处理解析错误,只需检查str2time
:
undef