in reply to Perl Labeled Blocks

... but the problem is its not the one that i want labeled blocks to do for me. why is it so?

Because next is a loop control operator, not a goto. When you use next without a label, it transfers control to the top of the nearest enclosing loop.

next LABEL; allows you to transfer control to an enclosing loop, other than the nearest. So, you can do:

OUTER: for my $x ( 1 .. 10 ) { INNER:for my $y ( 1 .. 10 ) { #do stuff if( condition ) { next INNER; } else { next OUTER; } } }

In order to do what you are attempting to do, you need to use a goto, not a loop operator:

#!perl/bin/perl use strict; @_ = qw/perl is great/; for (@_) { if ($_ eq "perl") { print "$_\n"; next; } else { goto LABEL } LABEL: print "The word was: $_\n"; };; __OUTPUT__ perl The word was: is The word was: great

Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
"Too many [] have been sedated by an oppressive environment of political correctness and risk aversion."