Vielleicht hat mir jemand ein kleines Beispiel?
Aber klar, so schlimm ist das gar nicht. Mal ein ziemlich sinnloses Beispiel:
use strict;
use diagnostics;
use Data::Dumper;
# Beim Einbinden des Debuggers musst du die zu ueberwachenden
# Funktionen angeben, in meinem Fall flip, s.a. package Nonsense
use Debug::Trace qw/flip/;
my @liste = qw(a 241 50 w e);
my @uppercase = map { flip($_) } @liste;
print Dumper @uppercase;
sub flip {
return ($_[0] =~ /^[a-z]+$/ ? Nonsense::numify(shift) : Nonsense::stringify(shift));
}
package Nonsense;
use Debug::Trace qw/numify stringify/;
sub numify {
return ord shift;
}
sub stringify {
return chr shift;
}
1;
Ausgabe:
TRACE: main::flip("a") called at mini.pl line 11 package main
TRACE: Nonsense::numify("a") called at mini.pl line 15 sub main::flip
TRACE: Nonsense::numify() returned: (97)
TRACE: main::flip() returned: (97)
TRACE: main::flip(241) called at mini.pl line 11 package main
TRACE: Nonsense::stringify(241) called at mini.pl line 15 sub main::flip
TRACE: Nonsense::stringify() returned: ("\361")
TRACE: main::flip() returned: ("\361")
TRACE: main::flip(50) called at mini.pl line 11 package main
TRACE: Nonsense::stringify(50) called at mini.pl line 15 sub main::flip
TRACE: Nonsense::stringify() returned: (2)
TRACE: main::flip() returned: (2)
TRACE: main::flip("w") called at mini.pl line 11 package main
TRACE: Nonsense::numify("w") called at mini.pl line 15 sub main::flip
TRACE: Nonsense::numify() returned: (119)
TRACE: main::flip() returned: (119)
TRACE: main::flip("e") called at mini.pl line 11 package main
TRACE: Nonsense::numify("e") called at mini.pl line 15 sub main::flip
TRACE: Nonsense::numify() returned: (101)
TRACE: main::flip() returned: (101)
der da vorgestellte debugger funktioniert nur beim Aufruf von perl in der command-Zeile, nicht aber in der Browserumgebung.
Aber Debug::Trace funktioniert auch im CGI-Kontext, die Trace-Ausgaben werden dort ins Error-Log geschrieben.
Siechfred
Ein Selbständiger ist jemand, der bereit ist, 16 Stunden am Tag zu arbeiten, nur um nicht 8 Stunden für einen Anderen arbeiten zu müssen.