while () { chomp; my $line = $_; next if /^$/; next if /^\D.*$/; my ($date, $year) = /^((\d{4})\d+)/; foreach my $name (sort keys %corps) { for my $id (sort keys %{ $corps{$name} }) { $_ = $id; s/(\d{4}).*/$1/; if ($_ eq $year) { if (($date gt $corps{$name}{$id}{bid}) && ($date lt $corps{$name}{$id}{eid})) { print "Line $. => CorpName: $name Date=$date is in RangeId: $id -> $corps{$name}{$id}{bid} - $corps{$name}{$id}{eid}"; print OUT "$.,$line"; } } } } }