in reply to Should we handle multiple arguments as a list?
If you're asking how to write a function that can process either a scalar or a list of values (operating on each value in the list in turn) and the function returns EITHER a scalar OR a list see the Camel book for 'wantarray' function. Here's a quick example for you:
# Trim beginning and trailing whitespace only sub trim { my @out=@_; # reassign so we don't change input values for (@out) { # loop and substitution are using default system variable $_ s/^\s+//; s/\s+$//; } # the return uses Perl's only trinary operator # COND ? THEN : ELSE # Was this subroutine called in list context or not? return wantarray ? @out : $out[0]; } # main program my @list=(' List 1 ',' List 2 ',' List 3 '); my $val=' Scalar '; print "'$_'\n" foreach (trim($val)); print "'$_'\n" foreach (trim(@list)); __END__
Hope this answers your question.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
(ichimunki) Re x 2: Should we handle multiple arguments as a list?
by ichimunki (Priest) on Jul 22, 2001 at 07:14 UTC |