use warnings; use strict; use Data::Dumper; my %HoH = ( first => {1 => 'First 1', 2 => 'First 2'}, second => {1 => 'second ', 2 => 'second 2'}); my %bogusHoH = %{bogusInAndOut (%HoH)}; print "\nbogus hash: " . Dumper (\%bogusHoH); sub bogusInAndOut { my (%hash) = @_; return %hash; }