in reply to Passing multiple data types to a subroutine
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)
|
|---|