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;
In reply to Re^2 Count the number of return values from a subroutine
by thpfft
in thread Count the number of return values from a subroutine
by dkubb
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |