[johnsca@CORY tmp]$ cat tst.pm #!/usr/bin/perl package tst; use warnings; use strict; *import = \&foo; sub foo { print "Import foo\n"; } 1; [johnsca@CORY tmp]$ cat tst.pl #!/usr/bin/perl use warnings; use strict; use lib '.'; use tst; [johnsca@CORY tmp]$ perl -c tst.pm Name "tst::import" used only once: possible typo at tst.pm line 9. tst.pm syntax OK [johnsca@CORY tmp]$ perl -c tst.pl Import foo tst syntax OK [johnsca@CORY tmp]$ perl tst.pm Name "tst::import" used only once: possible typo at tst.pm line 9. [johnsca@CORY tmp]$ perl tst.pl Import foo #### [johnsca@CORY tmp]$ cat tst.pm #!/usr/bin/perl package tst; use warnings; use strict; use vars qw/*import/; # or: *import = *import; *import = \&foo; sub foo { print "Import foo\n"; } 1; [johnsca@CORY tmp]$ perl -c tst.pm tst.pm syntax OK