We like to see strictures (use strict; use warnings;), but it looks like you added them as boiler plate to make us happy. As Marshall hints you can not possibly have run the code as presented. In fact even with strictures removed there are still many syntax errors that prevent the code from running. You have presented us with a steaming pile of dog turds so you haven't received very much help. As a first step you need to present code that actually runs and for very strong preference is self contained (see I know what I mean. Why don't you? for how you might do that).
At this stage tools such as BioPerl are likely to be a distraction until you get some basic Perl squared away. We can help with your Perl understanding given a sound starting point (so that we can understand where you are having trouble). Fewer of us can help with the biological component of your problem and none of us should do your homework for you.
Bottom line: you need to get a stand alone (no external files) test version of your code going at least enough that you can come back to us with your Perl coding problems.
Optimising for fewest key strokes only makes sense transmitting to Pluto or beyond