in reply to Re: error message in the end of the array looping?
in thread error message in the end of the array looping?

In the past, I've encountered warnings from perl about exiting a loop via return and expected your first example to generate one. However, when I tested it (even after modifying key2's undef to "No goods" to get a successful match), the example code produced no such warning. So now I'm confused...

Any idea why this example code doesn't emit a warning about exiting the loop via return? (Unfortunately, I've long since fixed my code to remove that warning and don't recall the details clearly enough to provide an example which produces it.)

Replies are listed 'Best First'.
Re^3: error message in the end of the array looping?
by GrandFather (Saint) on May 30, 2006 at 19:15 UTC

    If you try to return when not in a sub you get:

    use strict; use warnings; return 10;

    Prints:

    Can't return outside a subroutine at noname2.pl line 4.

    DWIM is Perl's answer to Gödel
      That warning didn't look familiar so I poked around a little on google and it turns out that I misremembered it backwards... The actual warning I was thinking of was "Exiting subroutine via next", for which the solution is to exit from the sub using return instead of next... So return was the cure for my half-remembered warning rather than the cause.