http://qs321.pair.com?node_id=1200064


in reply to Re: If statement seems to ignore elsif and skips to else
in thread If statement seems to ignore elsif and skips to else

Even with breakpoints it will not stop on the false if conditions.

The test program:

$ cat debugger.pl use strict; use warnings; use feature 'say'; my $c = shift; if ($c == 1) { say 1; } elsif ($c == 2) { say 2; } elsif ($c == 3) { say 3; } else { say "something else"; }
And now the execution under the debugger, with the insertion of four break points:
$ perl -d debugger.pl 4 Loading DB routines from perl5db.pl version 1.33 Editor support available. Enter h or `h h' for help, or `man perldebug' for more help. main::(debugger.pl:5): my $c = shift; DB<1> b 7 DB<2> b 8 DB<3> b 9 DB<4> b 10 DB<5> s main::(debugger.pl:6): if ($c == 1) { DB<5> s main::(debugger.pl:13): say "something else"; DB<5> s something else 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.