# call the sub with a local hash play_around(\%toys); sub play_around { my %t = %{$_[0]}; # I found this the only way to get the has in properly, # otherwise it came in scalar, and mixing and matching # hash and scalars made me choose to load this way, if # it's wrong, please correct me. $t{'leggo'} = "yes"; # this only lasts locally in this sub $_[0]{'leggo'} = "yes"; # this will modify the actual %toys which is what I want. # But this is darned ugly! and with a number of # hashes / scalars it's a pain. Is there not a better # way, or have I crossed the line into being a # bad practice perl programmer? }