Thread Code, der Code erzeugt und verwendet: geht das?
(15 answers)
Opened by Crian at 2003-08-18 15:26
hier einíge weitere Moeglichkeiten:
Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 sub CreateFunction { my ($package, $functionName, @params, ...) = @_; no strict 'refs'; *{$package . '::' . $functionName } = sub { # content of sub, e.g. my @params = @_; print "Sub called with @params\n"; } use strict 'refs'; # optional, wenn am blockende } # CreateFunction &CreateFunction('A', 'PrintIrgendwas'); &A::PrintIrgendwas(20, 30, 40); oder auch ueber AUTOLOAD (schwierig, meistens ist wohl die obige Loesung besser): Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 sub AUTOLOAD { my ($self, @params) = @_; if (my ($subName) = $AUTOLOAD =~ /.*::([^:])+$) { print "Building sub $subName\n"; no strict 'refs'; *{$AUTOLOAD} = sub { my @params = @_; print "Sub: @params\n"; }; goto $self->$subName(@params); } # AUTOLOAD oder die IMHO beste moeglichkeit: Du baust einen Hash, dessen Schluessel die Namen und dessen Werte Referenzen auf Subs sind, und rufst die Funktion dann ueber den Hash auf... und jetzt sage bitte, dass er zum Problem passt :-)) ich weiss nicht, ob der Code so laeuft, habe ihn nicht getestet....\n\n <!--EDIT|Strat|1061220646--> perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/ |