B::Deparse
am 17.04.2007 14:03:40 von Ferry BolharHallo,
ich möchte gerne B::Deparse aus einem Programm heraus verwenden,
um eben dieses Programm bzw. Teile davon programmgesteuert
ausgeben zu können. B::Deparse stellt zu diesem Zweck die Methode
coderef2text() zur Verfügung, diese erwartet aber eine Codereferenz.
Wo bekomme ich die Codereferenz des Hautprogrammes her?
B::main_cv liefert mir das B::CV Objekt des Hauptprogramms. Das
kann ich mit B::SV::object_2svref in eine Codereferenz umwandeln:
use strict;
use warnings;
use B::Deparse;
my $dep = B::Deparse->new;
my $body = $dep->coderef2text(B::SV::object_2svref(B::main_cv));
print "$body\n";
Soweit, sogut. Es kommen keine Fehler. Aber:
Alles, was ich bekomme, ist ein einsames ";\n", d.h. ein Strichpunkt,
gefolgt von einem Newline. Nicht eben gerade sehr üppig.
Was mache ich hier falsch?
Schöne Grüße,
Ferry
--
Ing Ferry Bolhar
Magistrat der Stadt Wien - MA 14
A-1010 Wien
E-Mail: bol@adv.magwien.gv.at