hallo
was glaubst du, was dies ausgibt?
eval{ undef;0; 0=="a"?1:2 } || 42; # Ausgabe: 1
Bei mir kommt 42 raus und weißt Du auch warum!?
Weil dein Perl kaputt ist?
Vermutlich weil pl use warnings;
eingeschaltet hat (was gut ist), dann aber mit $SIG{__WARN__} = sub{ die @_ };
aus Warnungen Silent Failures macht. Kann man schon so machen, ist dann halt kacke.