Using a boilerplate to start a module will help with your problems with exportation and ultimate truth.
in reply to Re: Avoiding silly programming mistakes
in thread Avoiding silly programming mistakes
The trick to using such templates is to make them congenial; make your own. Avoid building a template which is more comprehensive than you will be willing to alter.
Here is what I'm currently using, minus pod.
our $VERSION = '0.01';
use vars ( 'XXX_exported', '@EXPORT' ); ## no critic
use base qw/ Exporter /;
@EXPORT = qw/ XXX_exported /;