Siechfred: Debug::Trace

Beitrag lesen

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.