Also spiele ich mit etwas schwarzer Magie in Perl (schließlich machen wir alle :-) und ich bin etwas verwirrt darüber, wie genau ich das alles machen soll. Hier ist, was ich beginne mit:Wie erstelle ich eine In-Memory-Klasse und schließe sie dann in Perl ein?
use strict;
use warnings;
use feature ':5.10';
my $classname = 'Frew';
my $foo = bless({ foo => 'bar' }, $classname);
no strict;
*{"$classname\::INC"} = sub {
use strict;
my $data = qq[
package $classname
warn 'test';
sub foo {
print "test?";
}
];
open my $fh, '<', \$data;
return $fh;
};
use strict;
unshift @INC, $foo;
require $foo;
use Data::Dumper;
warn Dumper(\@INC);
$classname->foo;
bekomme ich folgende Fehler (je nachdem, ob meine erfordern Leitung kommentiert out):
Mit erfordern:
Recursive call to Perl_load_module in PerlIO_find_layer at crazy.pl line 16.
BEGIN failed--compilation aborted.
ohne:
Alle Zauberer, die einige dieser schwarzen Magie bereits kennen: Bitte antworten! Ich würde gerne mehr über diese Arcana lernen :-)
Auch Hinweis: Ich weiß, dass ich diese Art von Sachen mit Moose und anderen leichteren Helper-Modulen tun kann, versuche ich hauptsächlich zu lernen, also Empfehlungen zu verwenden -and-solches Modul wird nicht meine Stimmen bekommen :-)
aktualisieren: Ok, ich glaube, ich war nicht ganz klar, ursprünglich mit meiner Frage. Ich möchte im Grunde eine Perl-Klasse mit einer Zeichenfolge (die ich manipulieren und Interpolation in) basierend auf einer externen Datenstruktur erstellen. Ich stelle mir vor, dass das, was ich hier habe (sobald es funktioniert), nicht zu schwer sein sollte.
Aus Neugier was willst du eigentlich erreichen? Um es anders auszudrücken, warum willst du das machen? – Telemachus
@Telemachus: Nun, der Hauptgrund ist zu lernen, aber ich versuche auch einige Klassen basierend auf JSON zu generieren. Ich werde wahrscheinlich darüber in meinem Blog schreiben, sobald ich es laufen lasse. –