I have a few suggestions for improvement to your code, I'll outline the general ones then get more specific.

These are based on my personal opinion, please feel free to review my review.

Keep in mind the above suggestions are snippets from my own personal style. While it's not the one true way, I've found it usually does not conflict with the general consensus on perlmonks and CPAN. As well, I've never been burned by the suggestions above or below - that usualy happens only when I ignore my own guidelines. =)