use strict; use warnings; use Fcntl qw/:DEFAULT/; use Tie::File::AnyData::Bio::Fasta; tie my @arr, 'Tie::File::AnyData::Bio::Fasta', 'input.txt' or die $!; tie my @geneids, 'Tie::File::AnyData::Bio::Fasta', 'GENEID.out',mode => O_RDWR | O_CREAT or die $!; tie my @protids, 'Tie::File::AnyData::Bio::Fasta', 'PROTID.out',mode => O_RDWR | O_CREAT or die $!; @geneids = grep {/GENEID/} @arr; @protids = grep {/PROTID/} @arr; untie @arr; untie @geneids; untie @protids;