use DateTime::TimeZone::Local;
use Test::More tests => 1;
my @input = (1 .. 10 );
my (@output) = sort {
DateTime::TimeZone::Local->TimeZone();
$a cmp $b
} @input;
is_deeply(\@output, \@input);
Sortie :
1..1
Can't return outside a subroutine at /usr/local/share/perl/5.8.8/DateTime/TimeZone/Local.pm line 72.
# Looks like your test exited with 9 before it could output anything.
shell returned 9
Ich habe es überprüft und es befindet sich definitiv innerhalb einer Unterroutine. Es scheint nichts mit dem verwendeten Modul zu tun zu haben, dieser Code verursacht auch den gleichen Fehler:
my @output = sort {
sub1();
} (1 .. 5);
sub sub1 {
eval "use ModuleDoesntExist";
return 1; # remove this and get a seg fault
}
Es scheint sich eher um einen Fehler in PERL zu handeln als um etwas anderes. Irgendwelche Ideen? Mehr daran interessiert, warum dies geschieht, als eine Abhilfe - es tritt nur auf, wenn das Modul nicht vorhanden ist.