in reply to uninitialized split value

use diagnostics/ splain, (W uninitialized)

Basically, you're treating $seqres, $line, and all the substrings you create , as if they're defined

Something else that is peculiar, you're calling stripspaces on a single character, is that what you want?

And also that tertiary syntax usage seems very bizzare

$ perl -MO=Deparse,-p $record_types{'HELIX'} ? my %helix = get_helix($record_types{'HELIX'}) + : (); __END__ ($record_types{'HELIX'} ? (my(%helix) = get_helix($record_types{'HELIX +'})) : ());
easier written as $record_types{'HELIX'}  and my %helix = get_helix($record_types{'HELIX'} );