My guess for why the first two examples fail when the one with the use lib succeeds is that you must have another 'test.pm' somewhere in your library path. When you use lib it adds the directory to the beginning of the search path, so your test.pm is found before the other test.pm.
As far as why your module exports the function when you specify the empty list on your use line: In your module you don't have a package declaration, so all the code is read into the main package. To get the behavior you expect your module would have to look something like this:
package test; use base 'Exporter'; @EXPORT = qw/testroutine/; sub testroutine { 'This is a test'; } 1;
See Exporter for more about how you can control what subroutines your class exports.
In reply to Re: Use, Exporter, I'm Dizzy.
by dirving
in thread Use, Exporter, I'm Dizzy.
by logie17
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |