Perl:try :: tiny to catch

时间:2016-08-12 22:18:56

标签: perl

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块中被捕获

1 个答案:

答案 0 :(得分:5)

尝试:: Tiny在这里没有做任何事情,因为消息只是一个警告,而不是例外。

perldoc Date::Parse

  

decode()解析str2time并返回unix时间值,或者在失败时返回undef。

因此,如果您想在DATE处理解析错误,只需检查str2time

undef