[Dresden-pm] Funktion deklarieren, die automatisch __LINE__/__SUB__ der aufrufenden Funktion ausgibt

Daniel Leidert daniel.leidert.spam at gmx.net
So Feb 11 13:31:24 PST 2018


Am Sonntag, den 11.02.2018, 11:44 +0100 schrieb Reini Urban:
> > On Feb 11, 2018, at 11:34 AM, Daniel Leidert <daniel.leidert.spam at gmx.net> wrote:
> > 
> > Ich benötige Hilfe. Für ein Programm habe ich zwei Funktionen debug()
> > und debug_dump(), die bestimmte Inhalte ausgeben. Nun möchte ich gerne,
> > dass die Ausgabe folgendermaßen aussieht:
> > 
> > debug()
> > ->
> > DEBUG (function-name): ...
> > 
> > debug_dump()
> > ->
> > DEBUG2 (function-name:line-number): ...
> > 
> > Es ist einfach, den Funktionen entsprechende Argumente zuzuordnen:
> > 
> > sub function {
> > 	[..]
> > 	debug_dump ((caller(0))[3], __LINE__, ...)
> > 	[..]
> > }
> > 
> > sub debug_dump {
> > 	my ($sub, $line, @msg) = @_;
> > 	say ("DEBUG2 (", $sub, ":", $line, ") ", @msg);
> > }
> 
> einfach den caller index um eins erhöhen.
> 
> sub debug_dump {
>   my @msg = @_;
>   say “DEBUG2”, (caller[1])]3], “:”, (caller[1])]2], “ “, @msg;
> }
> 
> ungetestet.

Danke. Ich war zu fixiert auf den anderen Ansatz :) Das funktioniert
hervorragend.

Grüße, Daniel


Mehr Informationen über die Mailingliste Dresden-pm