에 eval
에서 시도 할 때 나는 성가신 문제를 겪고 있습니다.잉어 : ARRAY의 기괴한 복사본을 sassign에 넣습니다. 모든 수정 사항?
코드는 다음과 같습니다. $self->$func
점과 같은 오류에 특정 페이지로 분리 핸들러이 경우
$status = eval { $self->$func(@{$y->{args}}); };
:
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"
[email protected]
으로는 그래서 때 eval
종료 사용할 수 있습니다.
그러나, 대신 Carp.pm이 죽으면, 나는 주위에 버그가 스택에 관한 펄에 깊이가 몇 가지 제안이
Bizarre copy of ARRAY in sassign at /usr/share/perl/5.10/Carp.pm line 182
이 찾고 die
의 내부 어딘가에 가정 (예 : http://code.activestate.com/lists/perl5-porters/149248/) 그러나이 시점에서 필자는 필자가 perl에 대한 지식이 부족한만큼 두려운 것이고, 이것이 관련성이 있는지 또는 그것이 사실이라면 어떻게해야할지 모르겠습니다. :(
이 문제를 해결할 방법이 있는지 또는 eval
에서 오류 문자열을 다시 전달할 수있는 방법이 있는지 또는 내가 잘못 읽었습니까?
실례를 제공 할 수 있습니까? – perreal
나는 코드를 예제에 넣으려고했지만 괜찮 았기 때문에 제가 언급 한 기사와 관련이 있다고 생각하게됩니다. 당시 저는 Carp의 구버전을 가지고 있을지도 모른다고 생각 했었습니다. 그러나 그것은 최신 버전입니다. 실패한 모범을 얻고 성공한다면 게시 할 것입니다. – mark
[현재 안정 버전] (http://www.perl.org/get.html)에서 문제를 재현 해보십시오. 성공하면 [버그 신고] (http://p3rl.org/bug). 5.10이 오래되었고 [지원되지 않음] (http://perldoc.perl.org/perlpolicy.html#MAINTENANCE-AND-SUPPORT),이 버그는 이미 해결되었습니다. – daxim