in reply to Re: wantarray alternative (helper)
in thread wantarray alternative

This works, but why isn't this function built in somewhere? It seems most responders assume that this is perl's default behavior.

Replies are listed 'Best First'.
Re^3: wantarray alternative (choice)
by tye (Sage) on Jul 13, 2013 at 01:24 UTC

    Because that function is trivial to write and it isn't the only or even the obviously right choice.

    sub first_or_all { wantarray ? @_ : $_[0] } sub last_or_all { wantarray ? @_ : $_[-1] } sub list_or_aref { wantarray ? @_ : \@_ } sub aref_or_list { wantarray ? @{$_[0]} : $_[0] } sub pairs_or_href { wantarray ? @_ : {@_} } sub href_or_pairs { wantarray ? %{$_[0]} : $_[0] } sub all_or_concat { wantarray ? @_ : join $,, @_ } sub all_or_die { return @_ if wantarray; return $_[0] if @_ <= 1; require Carp; local $Carp::level = 2; my $sub = ( caller(1) )[3]; Carp::croak( "Don't call $sub() like that in a scalar context" ); }

    (to list just a few off the top of my head that I've heard people argue are wise choices)

    - tye