Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]3689[/thread]

$dbh->trace($level, $filename);: möchte Ergebnis aber in Scalar



<< >> 7 Einträge, 1 Seite
steffenw
 2006-05-20 13:25
#34417 #34417
User since
2003-08-15
692 Artikel
BenutzerIn
[Homepage] [default_avatar]
Jedenfalls funktioniert
Code: (dl )
$dbh->trace($level, \$scalar_wo_trace_rein_soll);
schon mal nicht.

Welcher ist der elegante Weg, das trotzdem zu erreichen?
$SIG{USER} = sub {love 'Perl' or die};
renee
 2006-05-20 13:48
#34418 #34418
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Aus DBI:
Quote
Trace Output

Initially trace output is written to STDERR. Both the $h->trace and DBI->trace methods take an optional $trace_filename parameter. If specified, and can be opened in append mode, then all trace output (currently including that from other handles) is redirected to that file. A warning is generated if the file can't be opened.

Further calls to trace() without a $trace_filename do not alter where the trace output is sent. If $trace_filename is undefined, then trace output is sent to STDERR and the previous trace file is closed.

Currently $trace_filename can't be a filehandle. But meanwhile you can use the special strings "STDERR" and "STDOUT" to select those filehandles.


Wenn Du jetzt an STDERR eine Variable bindest, sollte es funktionieren...\n\n

<!--EDIT|renee|1148118876-->
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
ptk
 2006-05-20 18:18
#34419 #34419
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Oder man verwendet als $trace_filename eine temporäre Datei und liest diese nach einem Aufruf aus.
steffenw
 2006-05-20 21:21
#34420 #34420
User since
2003-08-15
692 Artikel
BenutzerIn
[Homepage] [default_avatar]
Schade, die 2 Dinge hatte ich auch schon im Visier, nur sind beide nicht so elegant. Aber da muß ich wohl in den sauren Apfel beißen.
$SIG{USER} = sub {love 'Perl' or die};
esskar
 2006-05-21 04:28
#34421 #34421
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
wieso willst du denn in eine variable tracen?
und wo schreibst du die dann hin? nach STDERR? ;)
ptk
 2006-05-21 10:55
#34422 #34422
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Keine Ahnung, wozu das steffenw braucht, aber ich hatte einen ähnlichen Fall. Und zwar wollte ich aus dem Trace die expandierten SQL-Kommandos (alle Platzhalter durch die echten Werte ersetzt) für MySQL extrahieren und ausgeben.
steffenw
 2006-05-21 23:29
#34423 #34423
User since
2003-08-15
692 Artikel
BenutzerIn
[Homepage] [default_avatar]
Es gibt ein spezielles Modul bei mir, welches ein Debug-Schnittstelle bekommen soll bzw. sie schon teilweise hat. Es macht vieles mit DBI. Der Benutzer gibt bei dieser debug-Methode an, was mit den Daten passieren soll, gibt also neben etwas Konfiguration auch eine Codereferenz mit, die dann augerufen wird, wenn z.B. trace Daten hat. Im typischen Fall soll das Ergebnis mit anderen nach STDOUT in einer Webseite landen bzw. geloggt werden.

So, jetzt wißt Ihr was ich will. Das trace ist dazu also etwas unflexibel. Wahrscheinlich werde ich File::Temp dazu bemühen (müssen).\n\n

<!--EDIT|steffenw|1148239929-->
$SIG{USER} = sub {love 'Perl' or die};
<< >> 7 Einträge, 1 Seite



View all threads created 2006-05-20 13:25.