But if you find yourself passing lots of different datatypes, then consider passing a hash instead. Just note that any values that are arrays or hashes must be passed as references:recurse(split('','Hello World')); sub recurse { my ($car,@cdr) = @_; print "$car\n"; @cdr and recurse(@cdr); }
Now you don't have to worry about what order you list the arguments. :)foo( array => [0..9], scalar => 'Hello World', hash => {qw(foo bar baz qux)}, ); sub foo { my %args = @_; print 's: ', $args{scalar},"\n", 'a: ', join(',', @{$args{array}}),"\n", "h:\n", map "\t$_ => $args{hash}{$_}\n", keys %{$args{hash}}, ; }
jeffa
L-LL-L--L-LL-L--L-LL-L-- -R--R-RR-R--R-RR-R--R-RR B--B--B--B--B--B--B--B-- H---H---H---H---H---H--- (the triplet paradiddle with high-hat)
In reply to Re: Passing multiple data types to a subroutine
by jeffa
in thread Passing multiple data types to a subroutine
by Hagbone
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |