in reply to Count the number of return values from a subroutine

Personally, I find

my $count = scalar function();
easier to read than
my $count = () = function();

Update: This is a bad idea, as explained in Re: Count the number of return values from a subroutine and Re^2 Count the number of return values from a subroutine. You live and learn!

Replies are listed 'Best First'.
Re^2 Count the number of return values from a subroutine
by thpfft (Chaplain) on Jul 11, 2001 at 01:22 UTC

    Your version won't produce the result you want if the function returns only one value: you'll just get the value returned.

    The p5p version works by filling a list with the return values and then assigning the list, not the function, to a scalar, and works equally well with one or more return values.

    It also allows you to keep the return values. This will give you a taste of what it's like maintaining my old code:

    sub splat { my @letters = split(/\s/,$_[0]); return (rand(2) > 1) ? @letters : \@letters; } my $count = my @letters = splat('The world is all that is the case.'); my $output = join(",",($count > 1) ? @letters : @{$letters[0]}); print $output;