On Aug 2, awarsd said: >use lib "/path/to/Module"; >it works just fine
>with $dir = '/path/to'; >use lib "$dir/Module"; >it give me an error I also tried use lib qw() but same problem is there a >way to fix the problem?? The problem is that 'use' is a compile-time directive, whereas assigning a value to $dir happens at run-time. When Perl runs your program, it does a preliminary sweep over it, and does things like include modules when 'use'd, and execute BEGIN blocks. A statement like 'use lib "..."' is really just BEGIN { require lib; lib->import("..."); } so it happens at compile-time. This means that your variable $dir, which gets assigned at run-time, won't have a value when you need it to. Here's a simple demonstration: $x = 2; BEGIN { print "x is '$x'\n"; } That prints "x is ''", because the BEGIN block happens before we set $x to 2. You probably want to require() your config file in a BEGIN block before you do 'use lib'. BEGIN { require "my_vars.pl" } use lib "$dir/..."; -- Jeff "japhy" Pinyan [EMAIL PROTECTED] http://www.pobox.com/~japhy/ RPI Acacia brother #734 http://www.perlmonks.org/ http://www.cpan.org/ <stu> what does y/// stand for? <tenderpuss> why, yansliterate of course. [ I'm looking for programming work. If you like my work, let me know. ] -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]