Trace(3pm)
π Devel::Trace β the Trace(3pm) page, bestie edition π
okay so. you know how sh -x prints every line before it runs it? this module is that, but for Perl. it's literally called Devel::Trace and it prints out each line before it is executed. iconic behavior, honestly. β¨
πΈ SYNOPSIS πΈ
perl -d:Trace program
that's it. that's the whole thing. one flag. go off. π
π¦ DESCRIPTION π¦
so if you run your program with perl -d:Trace program, this module will print a message to standard error just before each line is executed. not after, before. main character timing. β°
like, say your program looks like this:
#!/usr/bin/perl
print "Statement 1 at line 4\n";
print "Statement 2 at line 5\n";
print "Call to sub x returns ", &x(), " at line 6.\n";
exit 0;
sub x {
print "In sub x at line 12.\n";
return 13;
}
then the Trace output will look like this:
>> ./test:4: print "Statement 1 at line 4\n";
>> ./test:5: print "Statement 2 at line 5\n";
>> ./test:6: print "Call to sub x returns ", &x(), " at line 6.\n";
>> ./test:12: print "In sub x at line 12.\n";
>> ./test:13: return 13;
>> ./test:8: exit 0;
see how it hopped into sub x and then came back out to line 8? yeah. it's giving omniscient narrator. π
this is something like the shell's -x option. fr fr. π₯
π DETAILS π
inside your program, you can enable and disable tracing by doing:
$Devel::Trace::TRACE = 1; # Enable
$Devel::Trace::TRACE = 0; # Disable
or, if you'd rather use the function:
Devel::Trace::trace('on'); # Enable
Devel::Trace::trace('off'); # Disable
and here's the cute part β Devel::Trace exports the trace function if you ask it to:
import Devel::Trace 'trace';
then if you want you just say:
trace 'on'; # Enable
trace 'off'; # Disable
no cap. that's the whole vibe. π«Ά
π TODO π
the things we could have, bestie. someday. π
- You should be able to send the trace output to the filehandle of your choice.
- You should be able to specify the format of the output.
- You should be able to get the output into a string.
We'll see. π
β LICENSE β
Devel::Trace 0.11 and its source code are hereby placed in the public domain. it's free, it's yours, do what you want with it. slay. π
π Author π
Mark-Jason Dominus (mjd-perl-trace@plover.com), Plover Systems co.
See the Devel::Trace.pm Page at http://www.plover.com/~mjd/perl/Trace for news and upgrades. go check it out, tell them we said hi. π
and that's a wrap on this little Trace(3pm) page from perl v5.32.0, dated 2021-01-04 β yeah it's a classic, it's vintage, it ate. π
β¨ π¦
π¦ where this page comes from
- debian bookworm: libdevel-trace-perl 0.12-1.1 Β· PD
- debian trixie: libdevel-trace-perl 0.12-1.1 Β· PD
- ubuntu jammy: libdevel-trace-perl 0.12-1.1 Β· PD
- ubuntu noble: libdevel-trace-perl 0.12-1.1 Β· PD
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms