use warnings; use strict; use Data::Dumper; use JSON; my %data; for (0..10){ $data{$_} = $_ * 5; } my $json = encode_json \%data; open my $wfh, '>', 'saved.json' or die "can't open the damned file for writing!: $!"; print $wfh $json; close $wfh; open my $fh, '<', 'saved.json' or die "can't open the damned file for reading!: $!"; my $perl_href; { local $/; $perl_href = decode_json $json } print Dumper $perl_href;