use strict; use JSON; my %hash = %{from_json(do{ local $/ = })}; __DATA__ { "440035528809":"6946395707444", "332679554392":"162874763688655", "913537320343":"56726180700920" } #### use 5.010; open my $perl, '>', 'perl.pl'; open my $data, '>', 'data.pl'; open my $json, '>', 'json.pl'; print $perl <<'CODE'; use strict; my %hash = ( CODE print $data <<'CODE'; use strict; my %hash; while () { my ($k, $v) = split /\t/o; $hash{$k} = $v; } __DATA__ CODE print $json <<'CODE'; use strict; use JSON; my %hash = %{from_json(do{ local $/ = })}; __DATA__ { CODE my $last = 100_000; for (1 .. $last) { my $k = int rand 1_000_000_000_000; my $v = int rand 1_000_000_000_000_000; my $comma = $_==$last?'':','; print $perl "$k=>'$v',\n"; print $data "$k\t$v\t\n"; print $json "\"$k\":\"$v\"$comma\n"; } print $perl <<'CODE'; ); CODE print $json <<'CODE'; } CODE close $perl; close $json; close $data; say "Standard Perl hash..."; system("time perl perl.pl"); say "Reading TSV from __DATA__..."; system("time perl data.pl"); say "Reading JSON from __DATA__..."; system("time perl json.pl"); unlink "perl.pl"; unlink "data.pl"; unlink "json.pl";