my %movies; { local $/ = "\n\n"; while ( ) { next unless s/\*\s+Movie="([^"]+)"\s+show=(\d+)//; $movies{$1}{$2} += $_ for 0, grep $_ > 20, split ' '; } print Dumper \%movies; } __END__ * Movie="ABC" show=4 10 20 30 14 90 30 21 13 11 10 09 23 22 05 22 15 19 20 * Movie="XYZ" show=4 10 20 30 14 90 30 21 13 11 10 09 23 22 05 22 15 19 10 * Movie="abc" show=4 10 10 10 14 10 10 11 13 11 10 09 13 12 05 12 15 19 10