hi.
ich bastel grad an einem error object. Meine Funktion bar() gibt im positiven fall ein ein object Foo zurück und im Fehlerfall ein object Error.
Folgendes Ziel hab ich
if( my $foo = bar() ) {
} else {
}
jetzt hab ich folgenden Test gemacht.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
use strict;
use warnings;
my $e1 = Error->new;
if($e1) { print "Error object: $e1"; }
else { $e1->message; }
unless(my $foo = bar())
{
$foo->message;
}
sub bar {
return Error->new;
}
package Error;
use overload '""' => sub { '' };
sub new {
return bless {}, shift;
}
sub message {
print "Error message!\n";
}
1;
soweit geht es gut. sieht jemand ne ausnahme, wann oder fahre ich mit dem overload sicher?