Ich hatte grad den Fall, dass ich einen Fehler abfangen wollte und eigentlich nicht auf den string testen will, also dachte ich mir ich bau mir Exceptionobjekte light mit:
use Scalar::Util;
eval {
die Scalar::Util::dualvar(5, 'komischer Fehler');
};
if ($@ and $@ == 5) {
say $@;
}
Aber er scheints nicht zu fressen.
Er sagt Argument "komischer Fehler at ... isn't numeric in numeric eq (==) at ...
edit: wird intern scheinbar kopiert und die Eigenschaft geht kaputt.
Das würd gehn.
use Scalar::Util;
eval {
die \Scalar::Util::dualvar(5, 'komischer Fehler');
};
if ($@ and ${$@} == 5) {
say ${$@};
}
Schad, dann ist die schöne string-eigenschaft weg.
Last edited: 2014-04-28 12:49:19 +0200 (CEST)
1 + 1 = 10