鲤鱼:奇怪的复制品的阵列在sassign.任何修复



当我试图从eval中调用die时,遇到了一个烦人的问题。

代码如下:;

$status = eval { $self->$func( @{$y->{args}} ); };

在这种情况下,$self->$func指向一个处理程序,该处理程序在出现以下错误时分离到某个页面:

sub detach
{
    my $self   = shift;
    my $url    = shift;
    my @params = @_;
    if( $url !~ /^// )
    {
        $url = '/' . $self->namespace . '/' . $url;
    }
    $url =~ s/sat.*$//;
    print STDERR $self->uri . ": Detaching to " . $url . "n";
    die "REDIR:$url";
}

"REDIR:$url"放入$@中,以便在eval退出时可用。

然而,相反,Carp.pm死了,我假设在带有的die内部的某个地方

Bizarre copy of ARRAY in sassign at /usr/share/perl/5.10/Carp.pm line 182

环顾四周,有一些迹象表明perl中存在一个与die期间的堆栈有关的深层错误(例如。http://code.activestate.com/lists/perl5-porters/149248/),但是,我担心目前我对perl的了解已经到了极限,我不确定这是否相关,或者如果相关该怎么办。:(

有人知道是否有办法解决这个问题,或者是否有其他方法从eval返回错误字符串,或者我是否读错了?

这听起来像#52610。您是否使用了任何挂接调试器的模块,这可能是罪魁祸首?

这是我使用的Perl版本的问题。升级到5.16.1解决了问题。

相关内容

  • 没有找到相关文章

最新更新