in reply to Passing hashes to subs?

You need to use references.

Try this:

&callsub(\%hashtopass); sub callsub { my $hashread = $_[0]; foreach $k (keys $%hashread) { . . . } }

Check this out for more information: http://www.perldoc.com/perl5.6.1/pod/perlref.html