You may wish to wrap your code in
<code> tags next time. I'm not 100% sure what you're asking, but perhaps this code example will answer your question:
sub function {
my $hashref = shift;
$hashref->{three} = 3;
}
my %hash = ( one => 1, two => 2 );
&function(\%hash);
print join(", ", keys %hash); # one, two, three
You can also have the same behavior like this:
sub function (%) {
my %hashref = shift;
...
}
&function(%hash); # passes %hash as a ref
Then there's this:
sub function {
my %hash = %{shift}; # de-references
$hash{three} = 3; # Does not affect the real %hash!
}