Thanks Rob and drieux, you were both right. The package line read
package Template; Since I noticed my error just one minute after asking for help on the list, I tried to send a followup, but - alas! - my provider's SMTP server denied connections for about two hours. Now I learned some more perlish behaviour: double colons are used for both the namespace and the replicated directory structure. Thanks again, Jan drieux wrote: > >On Jan 26, 2004, at 8:38 AM, Jan Eden wrote: >[..] >> The module sits in /Users/jan/Library/Scripts/Modules/Test. Now Perl >> tells me it cannot locate the subroutine "choose". If I place >> Template.pm directly into the path set in the "use lib" line and >> remove the "Test::" at both places, everything works fine. > >sounds like your package line in the Template.pm >file is set as > > package Template; > >and NOT as > > package Test::Template; > >Hence what you wanted to do is > > use lib "$ENV{HOME}/Library/Scripts/Modules"; > use Template; > ... > my ($update_path, $gallery_title) = &Test::Template::choose(); > >> I read in the camel that double colon separators in a module name >> would be translated to a directory structure when Perl searches for >> them. > >Yes and no - the yes part is that IF the package line and >the file name are set appropriately. > >This is one of the reasons that the perldoc advocates >doing the start of a perl module with h2xs > > cf perldoc h2xs > >so that you can start off at least modestly sanely > >my traditional rant on PM's is at ><http://www.wetware.com/drieux/CS/lang/Perl/PM/quick_pm.html> > >When I am brewing up a new module, I then of course use >something like > ><http://www.wetware.com/drieux/CS/lang/Perl/PM/PerlInstall.plx> > >so that i can install the module in my home directory. > >ciao >drieux > >--- > > -- There's no place like ~/ -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>