我carp
在一个块中使用,它总是从错误的位置报告错误。for 的文档说它会将自己添加到其中,以便它不会出现在更长的回溯中。但它仍然出现在摘要行中。的文档说添加包名称将从堆栈跟踪和摘要行中删除包。所以我已经这样做了,但报告的位置仍然不正确。这是我正在使用的代码:Try::Tiny
catch
Try::Tiny
%Carp::Internal
Carp
%Carp::CarpInternal
MyPackage::foo();
package MyPackage;
use Try::Tiny;
use Carp;
use vars qw(%Carp::CarpInternal);
$Carp::CarpInternal{'Try::Tiny'}++;
use Data::Dumper;
print Dumper \%Carp::CarpInternal;
print Dumper \%Carp::Internal;
sub foo {
carp 'bar1';
try{
carp 'bar2'
}catch {
carp $_;
}
}
1;
这是它打印的内容:
bar1 at myFile.t line 1.
bar2 at myFile.t line 21.
$VAR1 = {
'Try::Tiny' => 1,
'warnings' => 1,
'Carp' => 1
};
$VAR1 = {
'Try::Tiny' => 1,
'Exporter::Heavy' => 1,
'Exporter' => 1
};
这两个变量是我所期望的,但我希望在 myFile.t 的第 1 行都报告错误。有谁知道如何将错误报告位置修复为我想要的?