2

我正在尝试查找 clearcase 视图的最后访问日期,perl 脚本如下所示。

    @Property = `cleartool lsview -prop $viewtag ` ;

foreach $property (@Property)
    {
    $last_accessed = $property if ( $property =~ /^Last accessed / ); 
            # | cut  -b 15-24 | awk -F '-' '{ print $3"/"$2"/"$1 }'
    }

如果 cleartool 命令失败,我面临的问题是 perl 脚本退出。即使 cleartool 返回错误,我也希望 perl 继续。

BRs玛尼。

4

2 回答 2

8

简单而原始的方法是将可能失败的代码放在 eval 块中:

eval { @Property = `cleartool lsview -prop $viewtag ` };

这样,即使 cleartool 失败,您的 Perl 脚本也会继续运行。

正确的方法是使用适当的模块,例如Try::Tiny。该错误将在变量 $_ 中的 catch 块中可用。

try {
    @Property = `cleartool lsview -prop $viewtag `;
}
catch {
    warn "cleartool command failed with $_";
};
于 2013-01-22T11:49:03.630 回答
3

您可以按照“在 perl 中处理异常的最佳方法是什么? ”中的建议,尝试使用“ Try::Tiny ”。

另一种方法是使用evalcleartool 命令。

eval { @Property = `cleartool lsview -prop $viewtag` };
if ($@) {
    warn "Oh no! [$@]\n";
}
于 2013-01-22T11:47:34.257 回答