in reply to Re^2: removing the goto
in thread removing the goto

Erm... wasn't the goto label placed below the foreach in the OP, and a goto dinn' advance the iterator?

--shmem

_($_=" "x(1<<5)."?\n".q·/)Oo.  G°\        /
                              /\_¯/(q    /
----------------------------  \__(m.====·.(_("always off the crowd"))."·
");sub _{s./.($e="'Itrs `mnsgdq Gdbj O`qkdq")=~y/"-y/#-z/;$e.e && print}

Replies are listed 'Best First'.
Re^4: removing the goto
by imp (Priest) on Jun 01, 2007 at 19:26 UTC
    The point of redo is that it does not advance the iterator.
    The redo command restarts the loop block without evaluating the conditional again.
    my $redid = 0; my @list = (1..5); xyz : for (@list) { print; redo if $_ == 3 && ! $redid++; } # Output: 123345
      Thanks... now I got it *blush* - the difference between redo and next.
      Shame on me.

      --shmem

      _($_=" "x(1<<5)."?\n".q·/)Oo.  G°\        /
                                    /\_¯/(q    /
      ----------------------------  \__(m.====·.(_("always off the crowd"))."·
      ");sub _{s./.($e="'Itrs `mnsgdq Gdbj O`qkdq")=~y/"-y/#-z/;$e.e && print}