in reply to splitting fasta file into individual fasta files

Any ideas?

Yes. You are naming both files the same, so the second overwrites the first.

my $out = Bio::SeqIO->new( -file => ">$file"."_fasta", -format => 'Fasta');

Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
"Too many [] have been sedated by an oppressive environment of political correctness and risk aversion."