PerlPhi has asked for the wisdom of the Perl Monks concerning the following question:
hi,,,i got problem using with labeled blocks.
my codes as follows:
#!perl/bin/perl use strict; @_ = qw/perl is great/; for (@_) { if ($_ eq "perl") { print "$_\n"; next; } else { next LABEL } LABEL: print "The word was: $_\n"; }
even though using labeled blocks ain't useful for this example, i just use it for the sake of my demonstration. but the catch in here is i couldn't get labeled blocks being used the right way. it errors something "Label not found for "next LABEL" at sample.pl line 14"... and also moving the label around inside the for loop control creates such compilation error. but when i put my label "LABEL:" before the for loop control it doesn't commit any compilation errors. but the problem is its not the one that i want labeled blocks to do for me. why is it so?
like this codes below:
#!perl/bin/perl use strict; @_ = qw/perl is great/; LABEL: for (@_) { if ($_ eq "perl") { print "$_\n"; next; } else { next LABEL } print "The word was: $_\n"; }
and also, when the statement "next LABEL" was executed it jumps to the label "LABEL:". then it executes the for loop iteration just as next operator does. well labeled blocks are really confusing. when does labeled blocks good for?
thanks in advance... keep deep and dark!
From: PerlPhi
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Perl Labeled Blocks
by BrowserUk (Patriarch) on May 19, 2007 at 09:28 UTC | |
|
Re: Perl Labeled Blocks
by blazar (Canon) on May 19, 2007 at 09:31 UTC |