results in error messagesBEGIN { my $foo = 'foom'; use lib $foo; }
Use of uninitialized value in string eq at /usr/lib/perl5/5.8.0/i386-linux-thread-multi/lib.pm line 29. Empty compile time value given to use lib at hotshot.pl line 5Using your code
returns the desired resultsmy $foo; BEGIN { $foo = 'foom'; } use lib $foo; printf "executing: '%s'\n", join("', '", @INC );
executing: 'foom', '/usr/lib/perl5/5.8.0/i386-linux-thread-multi', ... , '.'Just to try something different I tried
which also worked.BEGIN { our $foo = 'foom'; } use lib $foo;
Another thing to put in the list of things to re-study. Key is that "use" (and other pragmas?) are executed (at compile time) before surrounding code at the same apparent 'level'. By enclosing code in a BEGIN block ahead of the "use" we force it into compile time execution before the following "use" is executed. (Or something like that ;-)
In reply to Re: Re: Re: Problems with 'use lib'
by shenme
in thread Problems with 'use lib'
by hotshot
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |