Thread Error object in if (1 answers)
Opened by esskar at 2010-03-28 18:53

esskar
 2010-03-28 18:53
#135400 #135400
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
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
Code (perl): (dl )
1
2
3
4
5
if( my $foo = bar() ) {
   # $foo isa Foo
} else {
   # $foo isa Error
}



jetzt hab ich folgenden Test gemacht.

Code (perl): (dl )
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
#!/usr/bin/perl

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?

View full thread Error object in if