use Data::Dumper; my %users = ( me => 1, you => 2, others => 3 ); #dump hash to file open my $file, ">", "temp~" or die $!; print $file Dumper \%users; close $file; #read hash data from file open $file, "<", "temp~" or die $!; my $hash_data = do { local $/; <$file> }; close $file; #eval it into %hash my %hash = do { no strict 'vars'; %{ eval $hash_data } }; print Dumper \%hash;