[tpm] use from a local directory
uri at StemSystems.com
Tue Mar 22 11:38:49 PDT 2011
>>>>> "FH" == Fulko Hew <fulko.hew at gmail.com> writes:
FH> But now I have a situation where the generated modules have 'use
FH> constant' in them and I need to have the callers be able to use
FH> those constants easily.
FH> At the moment they need to do $x = Module1::CONSTANT_1(); in order
FH> for it to work. Something more natural would be $x =
FH> Module1::CONSTANT_1; ie. without the parens.
FH> To do that I need to use export/import (right?)
Module1::CONSTANT_1() is fully qualified name so it doesn't need
if you import something, you only see the last part of the name
(CONSTANT_1) in your current symbol table. you seem to have cross over
those two concepts.
FH> And the only way to do that is something like 'use module qw/CONSTANT_1/;
no, you could have them exported by default so you wouldn't need the
FH> But then I'm using USE, not REQUIRE, and then the modules need to
FH> be installed in a standard directory... and the problem then
use and require do the same searching in the same dirs. the only
differences are that require is run time vs compile time for use and use
will call the import method on the loaded class. you can't import with
FH> Then I find out about 'use lib', but it only knows about
FH> explicitly defined directories. And 'use lib' isn't any different
FH> than didling the @INC variable anyway. And there doesn't seem to
FH> be an easy way of didling either to get it to include the
FH> 'invoked' directory (only the current-working-dirctory).
the dirs have nothing do to with this. it is the compile time vs runtime
and importing that matters.
what is wrong with having the users do a use line? make all your
constants export by default (in @EXPORT) and you have a simple
Uri Guttman ------ uri at stemsystems.com -------- http://www.sysarch.com --
----- Perl Code Review , Architecture, Development, Training, Support ------
--------- Gourmet Hot Cocoa Mix ---- http://bestfriendscocoa.com ---------
More information about the toronto-pm