in reply to use of diamond operator for multiple files

If your code is correct, you could reduce it by trying this (untested):
sub load_seqs{ local $ARGV = qw /q1.fa q2.fa/; while(my $line = <>){ if($line =~ m/^(?!\>).*\n$/){push (@{$_[0]},$line)}; } }