in reply to
Values passed into a sub routine
you can also have the first parameter control whether to interpret the rest of @_ as @_ or $_[0] as a hashref, for example,
sub func {
my($param1, $param2, $param3) = @_;
my $tempparam1;
if(ref($param1) eq "HASH") {
$tempparam1 = $param1->{'param1'};
$param2 = $param1->{'param2'};
$param3 = $param1->{'param3'};
$param1 = $tempparam1;
}
print "param1 is $param1 param2 is $param2 param3 is $param3 \n";
}
func( 'one', 'two', 'three');
func( {param1 => 'one', param2 => 'two', param3 => 'three'});
I've seen the above in Perl. Offers users TIMTOWTDI.