http://www.perlmonks.org?node_id=1041133


in reply to Re: Help with code optimization
in thread Help with code optimization

last?   Or maybe should be next?   Do you intend to jump out of the loop, or don’t you instead really mean, continue it?

Replies are listed 'Best First'.
Re^3: Help with code optimization
by kcott (Archbishop) on Jun 28, 2013 at 07:55 UTC
    "last? Or maybe should be next? Do you intend to jump out of the loop, or don’t you instead really mean, continue it?"

    The loop for ($data) { ... } only executes once.

    Neither last nor next will make it execute any more or less times.

    When a match is found and the captured data is assigned to a variable, that's the last thing to be done.

    Here's what the last documentation says:

    "The last command is like the break statement in C (as used in loops); it immediately exits the loop in question."

    That's what we want to do here: immediately exit the loop.

    Here's what the next documentation says:

    "The next command is like the continue statement in C; it starts the next iteration of the loop"

    That's not what we want to do here: it's a one-pass loop; there are no more iterations.

    [You might like to follow the link I provided in my original reply. It has two more code examples where last is used to exit one-pass loops.]

    -- Ken