in reply to Re: Using the perl debugger
in thread Using the perl debugger

Ooops! The behavior appears to vary depending on how lines are executed, leading me to believe almut may be correct and that codeacrobat's observation may apply to 5.8.8 (and probably others). A caveat (or "confusion") follows. Compare using r instead of stepping:

>perl -d \pl_test\test{{.pl Loading DB routines from perl5db.pl version 1.28 Editor support available. Enter h or `h h' for help, or `perldoc perldebug' for more help. main::(\pl_test\test{{.pl:5): 5: my @i = (2..5); DB<1> {{ # DB<2> r foo 3 foo 4 foo 5 foo 6 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. auto(-1) DB<2> # DB<2> ...

BUT, stepping (entirely) through the script:

BUT: >perl -d pl_test\test{{.pl Loading DB routines from perl5db.pl version 1.28 Editor support available. Enter h or `h h' for help, or `perldoc perldebug' for more help. main::(pl_test\test{{.pl:5): 5: my @i = (2..5); DB<1> {{ # DB<2> s main::(pl_test\test{{.pl:7): 7: for my $i (@i) { auto(-1) DB<2> # DB<2> main::(pl_test\test{{.pl:8): 8: $i ++; auto(-1) DB<2> # DB<2> main::(pl_test\test{{.pl:9): 9: print "foo"; auto(-1) DB<2> # DB<2> foomain::(pl_test\test{{.pl:10): 10: print " $i\n"; auto(-1) DB<2> # DB<2> 3 main::(pl_test\test{{.pl:8): 8: $i ++; auto(-1) DB<2> # DB<2> main::(pl_test\test{{.pl:9): 9: print "foo"; auto(-1) DB<2> # DB<2> foomain::(pl_test\test{{.pl:10): 10: print " $i\n"; auto(-1) DB<2> # DB<2> 4 main::(pl_test\test{{.pl:8): 8: $i ++; auto(-1) DB<2> # DB<2> main::(pl_test\test{{.pl:9): 9: print "foo"; auto(-1) DB<2> # DB<2> foomain::(pl_test\test{{.pl:10): 10: print " $i\n"; auto(-1) DB<2> # DB<2> 5 main::(pl_test\test{{.pl:8): 8: $i ++; auto(-1) DB<2> # DB<2> main::(pl_test\test{{.pl:9): 9: print "foo"; auto(-1) DB<2> # DB<2> foomain::(pl_test\test{{.pl:10): 10: print " $i\n"; auto(-1) DB<2> # DB<2> 6 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. auto(-1) DB<2> # DB<2> Use `q' to quit or `R' to restart. `h q' for details. DB<2> s Use `q' to quit or `R' to restart. `h q' for details. ...

WTF?

Replies are listed 'Best First'.
Re^3: Using the perl debugger
by almut (Canon) on Mar 15, 2009 at 13:02 UTC
    BUT, stepping (entirely) through the script...

    ?? — I don't really see a difference in output. For example, the line print " $i\n" is still printing 3..6.  And the "foo" is there as well: foomain::(...