in reply to next in block in foreach-loop
The problem is an extra set of braces you are using in the second bit of code there. You have a nested bare block inside the foreach, the next breaks out of it, NOT the foreach.
use strict; my @list = qw(0 1 2 3 4 5); foreach (@list){ #opens up the foreach block . . . { #opens up a new block . . . next if $_ == 0; #breaks out of enclosing block } #meaning it breaks to here. print $_, " "; #so '0' get's printed anyway } #ends the foreach
Be careful about these extra blocks by using labels and explicitly breaking with them. Labels are goood practice for complicated loop structures anyway, for clarity's sake.
Cheers,
|
|---|