Q4_2001: 741 1203 3406 1861 1242 1911 601 etc Q3_2001: 773 1255 3552 1941 1296 1993 627 etc Q2_2001: 805 1307 3698 2021 1350 2075 653 etc #### %HoH = ( Q4_2001 => { Algeria => 741, Argentina => 1203, etc }, Q3_2001 => { Algeria => 773, Argentina => 1255, etc }, ); #### sub build_HoH { while () { next unless s/^(.*?):\s*//; my $period = $1; my @data = split; foreach my $country(@countries) { $HoH{$period}{$country} = $data; } }