in reply to Re^4: Debugger actions: On which lines?
in thread Debugger actions: On which lines?
It doesn't "fix the issue for me". Did you run the script under the debugger all the way?
Despite your results, using -w still turns warnings on globally, which is why the OP encountered the error with his code. See the demonstration below.
Of course none of this answers his original question, i.e. why is the action executed on every line after it's first executed?
[23:11][nick:~/monks]$ cat 1138950-2.pl #!/usr/bin/perl -w use strict; use warnings; my $x = 3; my $y = 0; for(1..3){ $y = $x; $y++; $x -= $y; } [23:11][nick:~/monks]$ perl -d 1138950-2.pl Loading DB routines from perl5db.pl version 1.49 Editor support available. Enter h or 'h h' for help, or 'man perldebug' for more help. main::(1138950-2.pl:6): my $x = 3; DB<1> a 11 say $y + DB<2> n + main::(1138950-2.pl:7): my $y = 0; DB<2> + main::(1138950-2.pl:9): for(1..3){ DB<2> + main::(1138950-2.pl:10): $y = $x; DB<2> + main::(1138950-2.pl:11): $y++; 3 DB<2> + main::(1138950-2.pl:12): $x -= $y; 4 DB<2> + main::(1138950-2.pl:10): $y = $x; 4 DB<2> + main::(1138950-2.pl:11): $y++; -1 DB<2> + main::(1138950-2.pl:12): $x -= $y; 0 DB<2> + main::(1138950-2.pl:10): $y = $x; 0 DB<2> + main::(1138950-2.pl:11): $y++; -1 DB<2> + main::(1138950-2.pl:12): $x -= $y; 0 DB<2> + Debugged program terminated. Use q to quit or R to restart, use o inhibit_exit to avoid stopping after program termination, h q, h R or h o to get additional info. Use of uninitialized value $y in say at (eval 18)[/Users/nick/perl5/pe +rlbrew/perls/perl-5.22.0/lib/5.22.0/perl5db.pl:737] line 1. at (eval 18)[/Users/nick/perl5/perlbrew/perls/perl-5.22.0/lib/5.22.0/ +perl5db.pl:737] line 1. eval 'no strict; ($@, $!, $^E, $,, $/, $\\, $^W) = @DB::saved;pack +age main; say $y; ' called at /Users/nick/perl5/perlbrew/perls/perl-5.22.0/lib/5.22.0/pe +rl5db.pl line 737 DB::eval called at /Users/nick/perl5/perlbrew/perls/perl-5.22.0/li +b/5.22.0/perl5db.pl line 2681 DB::DB called at /Users/nick/perl5/perlbrew/perls/perl-5.22.0/lib/ +5.22.0/perl5db.pl line 10345 DB::fake::at_exit() called at /Users/nick/perl5/perlbrew/perls/per +l-5.22.0/lib/5.22.0/perl5db.pl line 9916 DB::END() called at (eval 18)[/Users/nick/perl5/perlbrew/perls/per +l-5.22.0/lib/5.22.0/perl5db.pl:737] line 0 eval {...} called at (eval 18)[/Users/nick/perl5/perlbrew/perls/pe +rl-5.22.0/lib/5.22.0/perl5db.pl:737] line 0 DB<2>
Compare with no -w switch:
[23:15][nick:~/monks]$ cat 1138950-3.pl #!/usr/bin/perl use strict; use warnings; my $x = 3; my $y = 0; for(1..3){ $y = $x; $y++; $x -= $y; } [23:15][nick:~/monks]$ perl -d 1138950-3.pl Loading DB routines from perl5db.pl version 1.49 Editor support available. Enter h or 'h h' for help, or 'man perldebug' for more help. main::(1138950-3.pl:6): my $x = 3; DB<1> a 11 say $y + DB<2> n + main::(1138950-3.pl:7): my $y = 0; DB<2> + main::(1138950-3.pl:9): for(1..3){ DB<2> + main::(1138950-3.pl:10): $y = $x; DB<2> + main::(1138950-3.pl:11): $y++; 3 DB<2> + main::(1138950-3.pl:12): $x -= $y; 4 DB<2> + main::(1138950-3.pl:10): $y = $x; 4 DB<2> + main::(1138950-3.pl:11): $y++; -1 DB<2> + main::(1138950-3.pl:12): $x -= $y; 0 DB<2> + main::(1138950-3.pl:10): $y = $x; 0 DB<2> + main::(1138950-3.pl:11): $y++; -1 DB<2> + main::(1138950-3.pl:12): $x -= $y; 0 DB<2> + Debugged program terminated. Use q to quit or R to restart, use o inhibit_exit to avoid stopping after program termination, h q, h R or h o to get additional info. DB<2> + Use 'q' to quit or 'R' to restart. 'h q' for details.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^6: Debugger actions: On which lines?
by james28909 (Deacon) on Aug 18, 2015 at 09:09 UTC | |
by Laurent_R (Canon) on Aug 18, 2015 at 18:43 UTC | |
by Your Mother (Archbishop) on Aug 18, 2015 at 19:53 UTC | |
by Laurent_R (Canon) on Aug 18, 2015 at 20:21 UTC | |
by Your Mother (Archbishop) on Aug 18, 2015 at 21:00 UTC | |
| |
by james28909 (Deacon) on Aug 18, 2015 at 19:34 UTC | |
by Laurent_R (Canon) on Aug 18, 2015 at 19:53 UTC |