my @count = qw/1 2 3 4/; while ( my ( $iter, $value ) = each @count ){ if ($value < 2 ) { print "$iter: one\n"; } elsif ($value == 2) { # NO ERROR HERE, NOW say "$iter: HA!\n"; } else { print "$iter: three!\n"; } } #### 0: one 1: HA! 2: three! 3: three! # This is a very special case where 4 == three :-) #### my @count = qw/1 2 3 4/; while ( my ( $iter, $value ) = each @count ){ if ($value < 2 ) { print "$iter: one\n"; } elsif ($value = 2) { # LOGICAL ERROR HERE # assignment rather than test of equality # but no 'plaints from Perl print "$iter: HA!\n"; } else { print "$iter: three!\n"; } } #### 0: one 1: HA! 2: HA! 3: HA!