Technaton
27-09-2005, 15:51
Grüße! :)
In meinem aktuellen Skript muß ich ein Dokument auf "Macrodefinitionen" untersuchen. Die Sache ist recht einfach, es gibt Tag-artige Elemente, die zeigen, daß eine Macrodefinition folgt, mit einem regulären Ausdruck wird dann der Name extrahiert.
Perlintern soll das ein Modul sein, das dann eingebunden wird. Per Schnittstellendefinition muß ein Modul eine Funktion namens "delegate" implementieren, die dann aufgerufen wird. Imports sollten vermieden werden.
Im Moment löse ich das folgendermaßen:
# m//io; wird auf die aktuelle Zeile angewandt, Macroname ist in $1, evtl. Paramter in $2
require "$1.pm";
eval qq/$1::delegate("$2")/;
Und ich finde, das sieht ziemlich häßlich aus, denn eval macht das Skript ziemlich langsam. Gibt's eine elegantere Methode, um das zu lösen?
Gruß,
Techl
In meinem aktuellen Skript muß ich ein Dokument auf "Macrodefinitionen" untersuchen. Die Sache ist recht einfach, es gibt Tag-artige Elemente, die zeigen, daß eine Macrodefinition folgt, mit einem regulären Ausdruck wird dann der Name extrahiert.
Perlintern soll das ein Modul sein, das dann eingebunden wird. Per Schnittstellendefinition muß ein Modul eine Funktion namens "delegate" implementieren, die dann aufgerufen wird. Imports sollten vermieden werden.
Im Moment löse ich das folgendermaßen:
# m//io; wird auf die aktuelle Zeile angewandt, Macroname ist in $1, evtl. Paramter in $2
require "$1.pm";
eval qq/$1::delegate("$2")/;
Und ich finde, das sieht ziemlich häßlich aus, denn eval macht das Skript ziemlich langsam. Gibt's eine elegantere Methode, um das zu lösen?
Gruß,
Techl