我正在考虑用Perl重写一个旧的应用程序。
设置三个软件包并从中运行子程序对我将要做的事情很有意义,但我对设置软件包不是很熟悉。
我希望这些包与我的其他Perl脚本位于同一个地方,即除了这个bin目录中的脚本之外什么都不需要调用这些包。
我的问题是如何指出Perl知道我的软件包在哪里(以及如何将它们安装在默认位置以外的地方)这是一件好事/聪明的事情吗?
答案 0 :(得分:4)
这是一项常见任务。 PERL5LIB环境变量包含要查找模块的目录列表。您还可以使用lib
pragma指定特定脚本应在模块中查找的目录:
#!/usr/bin/perl
use strict;
use warnings;
use lib "$ENV{HOME}/lib";
您可能还想查看cpanm
和local::lib
。
答案 1 :(得分:2)
如果包和脚本位于同一位置,我建议使用FindBin
:
use FindBin '$Bin';
use lib $Bin;