in reply to If statement seems to ignore elsif and skips to else

Hi edgreenberg,

usually, when stepping through the code, the debugger jumps directly to the (first) matching condition (actually into the code of the matching if block), or directly to the block of the else statement (if any and) if none of the if and elsif conditions is met.

You will not "see" the debugger "try" the conditions that are evaluated to false.

Update: a small example:

$ perl -dE 'my $c = shift; > if ($c == 1) { > say 1; > } elsif ($c == 2) { > say 2; > } elsif ($c == 3) { > say 3; > } else { > say "something else"; > } ' 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::(-e:1): my $c = shift; DB<1> s main::(-e:2): if ($c == 1) { DB<1> s main::(-e:9): say "something else"; DB<1> 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. DB<1>