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.
The way forward always starts with a minimal test.

In reply to Re^5: Debugger actions: On which lines? by 1nickt
in thread Debugger actions: On which lines? by worik

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.