Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

I'm trying to re-use some code by using a module, and it seems to work until I try to put it in a folder.

For example, when my the app.pl and My_Module.pm are in the same directory (i.e. /path/to/dir/app.pl and /path/to/dir/My_Module.pm), it works fine when I put use My_Module; in app.pl.

But as soon as I move My_Module.pm to a directory IN the app directory (i.e. /path/to/dir/My_Module_Folder/My_Module.pm), the functions don't seem to import. In app.pl, I am putting use My_Module_Folder::My_Module;, and it compiles fine, but I get an error when I try to use a function from My_Module.

Does anyone have any idea how to fix this? I can move the module file to the app dir, but I would like to keep things organized.

Thanks!

Replies are listed 'Best First'.
Re: Functions not importing when module in folder
by choroba (Cardinal) on Mar 25, 2013 at 13:36 UTC
    After changing the path, you also have to change the package name to My_Module_Folder::My_Module. It might be more appropriate not to change the package name, though, but use lib instead.
    لսႽ† ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ
      Wow! Thank you so much! This has been bugging me so much.