open(FILE2,... my $position=tell(FILE2); my %rs; while ($line=) { my ($key)= $line=~/^(rs\d{5,})\b/; if (defined $key) { $rs{$key}= $position; } $position=tell(FILE2); } ... while (defined ($line= )) { ... foreach (@output) { if (exists $rs{$_}) { seek(FILE2,$rs{$_},0); my $line= ; print FD $line; } }