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),
Hat keinen Einfluss auf die Ausgabe 1.
natürlich bekommt man die warnung.
dann aber mit
$SIG{__WARN__} = sub{ die @_ };
aus Warnungen Silent Failures macht. Kann man schon so machen, ist dann halt kacke.
habs mal eingefügt:
BEGIN {
use CGI::Carp qw(carpout);
open(my $log, ">","error.log") or die("error.log $!\n");
carpout($log);
$SIG{__WARN__} = sub{ die @_ };
}
Ausgabe wird 42.
Das ist tatsächlich kaputtes Perl!
--
Neu im Forum! Signaturen kann man ausblenden!
Neu im Forum! Signaturen kann man ausblenden!