in reply to Re^2: Transferring local hashes to module subroutines
in thread Transferring local hashes to module subroutines

Understand that, as far as perl is concerned, passing an array or a hash is the same as passing a list of values. This is known as list context.
# functionally speaking, this.... %hash = ('a' => 1, 'b' => 2, 'c' => 3); myfunc(%hash); # is the same as this... myfunc('a', 1, 'b', 2, 'c', 3);
So you'll either want to put the scalar value first and shift it off:
$scalar = 'blue'; %hash = ('a' => 1, 'b' => 2); myfunc($scalar, %hash); sub myfunc { my $scalar = shift; my %hash = @_; print $hash{'a'}; }
Or pass arrays and hashes by reference, because when you pass a reference to an array or hash, the reference is a scalar context.
%hash = ('a' => 1, 'b' => 2); $scalar = 'blue'; myfunc(\%hash, $scalar); sub myfunc { my($hashref,$scalar) = @_; print $hashref->{'a'}; }

__________
Systems development is like banging your head against a wall...
It's usually very painful, but if you're persistent, you'll get through it.