Utiliser des référence :
#!/usr/local/bin/perl
use strict;
my %h;
$h{'toto'} = "32";
sub pr
{
        ${$_[0]}{'tata'} = "31";
}
&pr(\%h);
while(my($key,$value) = each(%h))
{
        print "$key => $value\n";
}
Dans l'exemple ci-dessus, on passe en argument à une fonction une table de hashage en référence et on intervient directement sur la référence (entre {} car c'est un élément d'un tableau).
On peut également retourner une référence sur un hash.
Plus d'informations dans les mans :