Reflaction ???
Meise2000
- perl
Hallo Leute,
Ich möchte gerne einen Trace für ein Perl-Projekt bauen. Falls ein Fehler (z.B. mit der Datenbank) auftritt, soll der getract werden. Das Programm soll aber weiterlaufen. Der Fehler wird gefangen, und dem Anwender eine entsprechende Mitteilung gemacht. Soweit, sogut.
Das Problem ist nun, die Stelle im Code zu finden, an der Fehler aufgetreten ist. Ich hätte da gerne eine Variable wie $0, aber die gibt nur den Namen des Hauptscriptes aus. Da mein Code über viele Module verteilt ist, nützt mir das nichts. Gibt es eine vordefinierte Variable, die das aktuelle Perl-Modul ausgibt, oder den Package-Namen?! Ideal wäre natürlich auch die Zeilennummer des Codes (ähnlich wie man das vom Exception-Handling bei Java kennt.
Meise.
Hallo,
evtl hilft dir caller.
zum ausprobieren:
use Data::Dumper;
sub bla{
print Dumper(\caller);
}
Dokumentation: perldoc -f caller
gruss
Hallo,
use Data::Dumper;
danke, das hat mir gefehlt!
Gruss,
Meise
Das Problem ist nun, die Stelle im Code zu finden, an der Fehler aufgetreten ist. Ich hätte da gerne eine Variable wie $0, aber die gibt nur den Namen des Hauptscriptes aus. Da mein Code über viele Module verteilt ist, nützt mir das nichts. Gibt es eine vordefinierte Variable, die das aktuelle Perl-Modul ausgibt, oder den Package-Namen?! Ideal wäre natürlich auch die Zeilennummer des Codes (ähnlich wie man das vom Exception-Handling bei Java kennt.
Evtl. hilft dir auch __FILE__, __LINE__ und __PACKAGE__
Struppi.