LOGO
____ _ _
| _ \ _ _ _ __ | |_(_)_ __ ___ ___
| |_) | | | | '_ \| __| | '_ ` _ \ / _ \
| _ <| |_| | | | | |_| | | | | | | __/
|_| \_\\__,_|_| |_|\__|_|_| |_| |_|\___|
____ _
| _ \ ___| |__ _ _ __ _ __ _ ___ _ __
| | | |/ _ \ '_ \| | | |/ _` |/ _` |/ _ \ '__|
| |_| | __/ |_) | |_| | (_| | (_| | __/ |
|____/ \___|_.__/ \__,_|\__, |\__, |\___|_|
|___/ |___/
NAME
Runtime::Debugger - Debug perl while its running.
VERSION
Version 0.02
SYNOPSIS
One can usually just do this:
# Insert this where you want to pause:
DB::single = 1;
# Then run the perl debugger to navigate there quickly:
PERLDBOPT='Nonstop' perl -d my_script
If that works for then great and dont' bother using this module!
Unfortunately for me, it was not working due to the scenario in which a script evals another perl test file and I would have liked to pause inside the test and see whats going on without having to keep rerunning the whole test over and over.
This module basically drops in a read,evaludate,print loop (REPL) whereever you need like so:
use Runtime::Debugger;
eval run; # Not sure how to avoid using eval here while
# also being able to keep the lexical scope.
# Any ideas ? :)
Try with this command line:
perl -MRuntime::Debugger -E 'my $str1 = "str-1"; my $str2 = "str-2"; my @arr1 = "arr-1"; my @arr2 = "arr-2"; my %hash1 = qw(hash 1); my %hash2 = qw(hash 2); eval run; say $@'
Press tab to autocomplete any lexical variables in scope.
Saves history locally.
SUBROUTINES/METHODS
run
Runs the REPL (dont forget eval!)
eval run
Sets $@
to the exit reason like 'INT' (Control-C) or 'q' (Normal exit/quit).
p
Data::Dumper::Dump anything.
p 123
p [1 ,2, 3]
uniq
Return a list of uniq values.
SEE ALSO
https://metacpan.org/pod/Devel::REPL
Great extendable module!
Unfortunately, I did not find a way to get the lexical variables in a scope. (maybe missed a plugin?!)
https://metacpan.org/pod/Reply
This module also looked nice, but same issue.
AUTHOR
Tim Potapov, <tim.potapov[AT]gmail.com>
BUGS
Please report any bugs or feature requests to https://github.com/poti1/runtime-debugger/issues.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc Runtime::Debugger
You can also look for information at:
https://metacpan.org/Runtime::Debugger https://github.com/poti1/runtime-debugger
LICENSE AND COPYRIGHT
This software is Copyright (c) 2022 by Tim Potapov.
This is free software, licensed under:
The Artistic License 2.0 (GPL Compatible)