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. |