in reply to Re^2: making a library
in thread making a library
With Foo.pm in the same directory as test.pl (assuming that is the current directory when you run test.pl) where test.pl contains:
use strict; use warnings; use Foo; Foo->bar(); Foo::bar();
I get:
Hello Hello
Using either the name space variant (Foo::bar) or the class method variant (Foo->bar) of calling bar makes no difference for this code because the "Foo" parameter passed into the class method call variant is not used.
The important thing is that the path to Foo.pm is in @INC. To check that you could alter test.pl to:
use Foo; print join "\n", @INC, ''; Foo->bar(); Foo::bar();
and check that the list of paths includes the path to Foo.pm. You also need to ensure that the file name case and package case match: use Foo everywhere - not foo, FOO or some other variant, but Foo everywhere.
|
|---|