1

我正在考虑用 Perl 重写一个旧的应用程序。

设置三个包并从中运行子例程对于我将要做的事情很有意义,但我对设置包不是很熟悉。

我希望这些包与我的其他 Perl 脚本位于同一个位置,即除了这个 bin 目录中的脚本之外,不需要调用这些包。

我的问题是如何让 Perl 知道我的包在哪里(以及如何将它们安装在默认位置以外的地方),这是一件可以/聪明的事情吗?

4

2 回答 2

4

这是一项常见的任务。PERL5LIB 环境变量包含要在其中查找模块的目录列表。您还可以使用libpragma指定特定脚本应在其中查找模块的目录:

#!/usr/bin/perl

use strict;
use warnings;
use lib "$ENV{HOME}/lib";

您可能还想研究cpanmand local::lib

于 2012-07-17T13:33:54.623 回答
2

如果包和脚本位于同一位置,我建议使用FindBin

use FindBin '$Bin';
use lib $Bin;
于 2012-07-17T14:04:05.153 回答