Thread Funktionen aus Modul parsen (6 answers)
Opened by rosti at 2012-03-01 18:46

rosti
 2012-03-02 18:23
#156584 #156584
User since
2011-03-19
3492 Artikel
BenutzerIn
[Homepage]
user image
Vielen Dank!!! Jow, so würde das ohne AutoLoader aussehen. Ist das so, dass mit dem AutoLoader zweimal kompiliert wird???

Mir gehts seit heute morgen darum, meine bisherige Kontrollstruktur beizubehalten, deswegen die Idee mit dem AutoLoader. In der bisherigen Kontrollstruktur wird ohnehin der Code einer jeden Methode per UNIVERSAL::can auf eine anonyme Referenz gelegt und beim Ausführen auf Exceptions getestet (was Einiges vereinfacht). Nochmal das Wesentliche:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
my $mo = main->new;

my $code = $mo->can('foo') or die "Die Methode wurde nicht gefunden";
$mo->$code(); # execute
print Dumper $mo; # INCR => 1

sub new{ return bless{INCR => 0}, shift }

sub AUTOLOAD{
        my $self = shift;
        my $subname = our $AUTOLOAD;
        $subname =~ s/.*:://; # extrahiere Klassen Name
        if(exists $mh{$subname}){
                # compiliert wird hier
                my $code = eval "sub{$mh{$subname}}";
                return $self->$code(@_);
        }
}


Die Stelle, wo compiliert wird, habe ich mal eingezeichnet ;)
Last edited: 2012-03-02 23:08:28 +0100 (CET)

View full thread Funktionen aus Modul parsen