我的脚本中有一个try-catch块(来自TryCatch模块),我想从try
块中的catch
块打印错误消息。似乎错误变量是try
块的本地:
use TryCatch;
...
try {
some command;
}
catch {
print "some command failed due to: $@";
# error variable $@ is not visible here
return;
}
还有其他办法吗?
答案 0 :(得分:4)
根据documentation,您展示的代码应该有效。但是,有一个longstanding bug导致它失败。
您可以使用catch
块中的签名绕过它:
use strict;
use warnings;
use 5.010;
use TryCatch;
try {
die 'foo';
}
catch ($err) {
say "Caught $err";
}
输出:
Caught foo at ./bar line 10.
但是,根据outstanding bugs的数量,我建议改为使用Try::Tiny。