in reply to Re^2: use lib statement with path variable
in thread use lib statement with path variable
There are two problems there. qw takes each blank characters separated elements in its operand (most often, words separated by spaces) and reads them in a simple quotish context. Put a simpler way, qw(A $b C %h); could also be written ('A', '$b', 'C', '%h'). In Ruby there is a qw-like construct that allows double-quotish interpretation, but this is Perl. So you instead have to write use lib ("$some_path/lib",); (the comma is optional, I just always put an extra comma in a single element list).
The second issue is that use is called straightaway, so you could say that perl reads your program :
This is of course really simplified.# Compiling using File::Spec using File::Basename there is a global variable called $some_path add to path $some_path/lib _Compilation complete_ # Running $some_path = dirname(File::Spec->rel2abs(__FILE__));
The BEGIN keyword means that a block has to be executed during compile time, and not to wait after compilation completion. You should write:
my $some_path; BEGIN { $some_path = "/my/path"; } use lib "$some_path/lib"; # Yeah, you don't even need the parenthesis, + Perl is clever enough for you # Edit : thanks dave_the_m for the correction
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: use lib statement with path variable
by chromatic (Archbishop) on Dec 04, 2013 at 20:15 UTC | |
by Eily (Monsignor) on Dec 04, 2013 at 20:22 UTC | |
|
Re^4: use lib statement with path variable
by dave_the_m (Monsignor) on Dec 04, 2013 at 21:22 UTC | |
by Eily (Monsignor) on Dec 04, 2013 at 21:47 UTC | |
|
Re^4: use lib statement with path variable
by sans-clue (Beadle) on Dec 05, 2013 at 03:47 UTC |