my %records; while (! eof (DATA)) { my $line1 = ; next unless defined $line1 and $line1 =~ /^01KV/; $_ = for my ($line2, $line3, $line4, $line5, $line6, $line7); my $id = substr $line1, 2, 9; $records{$id} = [$line1, $line2, $line3, $line4, $line5, $line6, $line7];