Thread OO-Modul schreiben (9 answers)
Opened by bianca at 2013-04-14 13:01

rosti
 2013-04-15 13:30
#167070 #167070
User since
2011-03-19
3464 Artikel
BenutzerIn
[Homepage]
user image
Mein Tipp:

Lass den Exporter zunächst weg.
Zur Frage Funktionen/Methoden aufrufen, guck mal:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package Foo;

use strict;
use warnings;

sub new{
        print "This is new!\n";
}

sub neu{
        print "Das ist neu!\n";
}


package main;

use strict;
use warnings;

new Foo;
Foo->neu;


Es gibt also zwei Möglichkeiten für den Aufruf.

Fehlerbehandlung: Mit Exceptions arbeiten, nächstes Beispiel:
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
package Foo;

use strict;
use warnings;
use Carp;

sub new{
        my $class = shift;
        my %args = @_;
        my $self = bless{}, $class;
        return eval{
                croak "x ist nicht gesetzt" if not exists $args{x};     
                $self;
        };
}



package main;

use strict;
use warnings;

my $f = Foo->new(xx => 1) or die $@; # Zeile 24



Fehlermeldung:
Quote
x ist nicht gesetzt at pack.pl line 24


Carp sorgt also dafür, dass ein Backtrace ausgegeben wird, der zeigt zur Zeile, wo der Fehler verursacht wurde.

Würdest Du anstelle croak() ein die() machen, stünde Zeile 12 in der Fehlermeldung. Probiers mal aus ;)

View full thread OO-Modul schreiben