in reply to Re: Re: A list returns its last, an array returns its weight ...
in thread A list returns its last, an array returns its weight

Hi,

Indeed, and this is where wantarray comes in.


---------------------------
Dr. Mark Ceulemans
Senior Consultant
IT Masters, Belgium

  • Comment on Re: Re: Re: A list returns its last, an array returns its weight ...

Replies are listed 'Best First'.
Re: Re: Re: Re: A list returns its last, an array returns its weight ...
by jdporter (Paladin) on Nov 13, 2002 at 14:29 UTC
    Yeah. But the need for wantarray is, in my experience, rare indeed. Almost always, I'm happy to let the normal context handling do its thing. For example:
    # let array handle context. # list of items in list context, count of items in scalar. sub find_things { my( $storage, $criteria ) = @_; my @things = $storage->lookup( $criteria ); @things } # let grep handle context. # list of items in list context, count of items in scalar. sub matching_things { my( $storage, $pat ) = @_; grep /$pat/, $storage->things() }
    That's not to say that wantarray is never useful. For example, if building a result list is expensive, you can use wantarray to avoid that cost in scalar context.
    # list of items in list context, first item in scalar. sub matching_things { my( $input_iter, $pat ) = @_; my @things; while ( <$input_iter> ) { /$pat/ or next; wantarray or return $_; push @things, $_; } @things }

    jdporter
    ...porque es dificil estar guapo y blanco.