Software-Engineering Martin Fabiani

Sitemap (Navigation ohne JavaScript)

Impressum: Martin Fabiani, Röderbergweg 104, D-60485 Frankfurt, Tel: +49 (69) 49084808, E-Mail: info (at) fabiani.net, USt-IdNr: DE217298609

Tips und Tricks zu Perl

Backtracing

Manchmal interessiert einen, über welchen Weg man in die aktuelle Subroutine gekommen ist (z.B. beim Debuggen von Fehlern). Dafür könnte man folgenden Code verwenden:

my $count = 0;
while( $count > -1 ) {
    my ($package, $filename, $line, $sub) = caller($count);
    last unless defined $line;
    printf "%02i %5i %-50s %-20s\n", $count++, $line, $sub, $filename;
}

Die Perl-Funktion caller liefert den Kontext des aktuellen Subroutinenaufrufes zurück. Wenn man sie mit einem Integerwert n als Parameter aufgeht, ermittelt caller den n-ten Aufruf zurück im stack trace und gibt die Infos zurueck.

Dieser Code versucht, soweit wie möglich backzutracen, und gibt die Aufrufhistorie an.

Weitere Informationen erhält man durch Eingabe folgendes Befehles in die Shell: perldoc -f caller


Letztes Update dieser Seite: Tuesday, 27-Jun-2006 20:37:00 CEST