in reply to referances of hashes, and subroutines

Check perlreftut; your primary mistakes are:
  1. Not sending %list by reference: change(\%list);
  2. shift()ing @_ and expecting an aggregate back; instead, use: my $href = shift @_;
Once you have $href, you use %$href wherever you used %A.
foreach (keys %$href) { print "$_ = $href->{$_}\n"; # or $$href{$_} ... }

Jeff japhy Pinyan, P.L., P.M., P.O.D, X.S.: Perl, regex, and perl hacker
How can we ever be the sold short or the cheated, we who for every service have long ago been overpaid? ~~ Meister Eckhart