我有一些存储在动态路径中的.pm文件。例如:
/home/scripts/project_pm_files
现在我有一个perl脚本,必须包含所有这些.pm文件。
请告诉我一种包含这些文件的方法,因为这些文件的位置是动态的,这意味着这些.pm文件没有固定的路径。
答案 0 :(得分:2)
将$PERL5LIB
环境变量设置为每个系统上的正确路径。
答案 1 :(得分:1)
将use lib /home/scripts/project_pm_files;
添加到您的脚本中。然后您可以使用use xxx.pm
来包含模块。
答案 2 :(得分:1)
使用lib
编译指示,将路径传递给pm文件。请注意,您必须在BEGIN
块中执行此操作,以便在脚本编译期间对其进行评估。那是因为在编译期间会评估use
语句。
my $path;
BEGIN { $path = find_project_pm_files(); }
use lib $path;
use my_module_1;
...
use my_module_n;
如果您的pm文件始终与主脚本相关,则可以使用FindBin module:
use FindBin;
use lib "$FindBin::Bin/../lib";