in reply to handling different new line characters

No comment on the NL problem really, except that reading is usually not a problem in Perl - you have to be more careful if writing files for distribution to *nix or WinDOS. If you are looking at making your code more robust, I would second the previous recommendations on file handling - remember FH style globs are global.

You might even consider using IO::File which IMHO has an easy peasy and pretty interface, and automatically closes in a kernel resource friendly manner!

use IO::File; my $fh = IO::File->new($filename, "r") or die "unable to open $filename: $!"; for my $line ( $fh->getlines() ) { chomp $line; print "[$line]\n"; }
I would also add the comment that your two subs duplicate each other - why not just have one? Or if you really like having the two names then...
sub load_primers { return _loadIndex( @_); } sub load_parents { return _loadIndex( @_); }
and move all the code into _loadIndex();

$0.02