Good answer, but one slight modification. The eval around the use line is unneccessary. It would be needed if you were tying to make the "lib" bit dynamic, but the arguments to a module are just a normal perl expression, and can include evaluation. Simply use lib $homedir;. (This also removes the need to die $@ if $@, of course.)
Warning: Unless otherwise stated, code is untested. Do not use without understanding. Code is posted in the hopes it is useful, but without warranty. All copyrights are relinquished into the public domain unless otherwise stated. I am not an angel. I am capable of error, and err on a fairly regular basis. If I made a mistake, please let me know (such as by replying to this node).
| [reply] [d/l] [select] |
Hmm - on this machine, with this perl, your suggestion does not work, and I think it does not work while used in the same block, as use is a compile time thing:
Q:\>perl -v
This is perl, v5.6.1 built for MSWin32-x86-multi-thread
(with 1 registered patch, see perl -V for more detail)
(snip-snap)
Q:\>perl -e "$foo='bar'; use lib $foo; die join ';',@INC"
Empty compile time value given to use lib at -e line 1
;s:/Os/OSP/OSPI/Perl/lib;s:/Os/OSP/OSPI/Perl/site/lib;. at -e line 1.
Q:\>perl -e "BEGIN{$foo='bar'; use lib $foo;} die join ';',@INC"
Empty compile time value given to use lib at -e line 1
;s:/Os/OSP/OSPI/Perl/lib;s:/Os/OSP/OSPI/Perl/site/lib;. at -e line 1.
Q:\>perl -e "BEGIN{$foo='bar';} use lib $foo; die join ';',@INC"
bar;s:/Os/OSP/OSPI/Perl/lib;s:/Os/OSP/OSPI/Perl/site/lib;. at -e line
+1.
Q:\>perl -e "BEGIN{my $foo='bar'; eval qq{use lib $foo;}};die join ':'
+,@INC"
bar:s:/Os/OSP/OSPI/Perl/lib:s:/Os/OSP/OSPI/Perl/site/lib:. at -e line
+1.
perl -MHTTP::Daemon -MHTTP::Response -MLWP::Simple -e ' ; # The
$d = new HTTP::Daemon and fork and getprint $d->url and exit;#spider
($c = $d->accept())->get_request(); $c->send_response( new #in the
HTTP::Response(200,$_,$_,qq(Just another Perl hacker\n))); ' # web
| [reply] [d/l] [select] |
Try require and import rather than use for run time inclusion of modules.
| [reply] [d/l] [select] |
Yesh!
This way it works. I could even add a the s/// to go down in path (eg. from "/work/programs/bin" -> "/work/programs". Thanks a lot :). | [reply] |