in reply to How Do I pass a hash to a subroutine?

Hashes can be passed either by value:
mysub(%hash); sub mysub { my (%params) = @_; }
or by reference:
mysub(\%hash); sub mysub { my $params = shift; my %paramhash = %$params; }
Each approach has it's advantages and disadvantages. Pass-by-value offers a simpler syntax, while pass by reference is faster and more flexible, allowing you to easily intermingle the hash with other parameters.