perl模块 - 如何引用Manifest中包含的文件

时间:2013-11-25 12:30:08

标签: perl module package

我创建了一个包含多个额外文件的模块,这些文件位于Manifest中,并在运行'make install'时安装,同时还有MyModule.pm

我的问题是如何从MyModule引用这些内容?

my $mfile = "incfile1.txt';  # this fails , as does ./  /  etc

1 个答案:

答案 0 :(得分:1)

取决于安装这些文件的位置。

如果它们总是安装在相对于模块的.pm文件的相同位置,那么您只需要确定模块的安装目录。这样做的一种方法是读取.pm文件的%INC值,该文件是包含模块的路径,并将该值处理到文件的路径中。

因此,让我们假装您的模块安装在/usr/lib/perl5/5.18.0/MyModule,以及同一目录中的额外文件。一种方法是:

my $mypath = $INC{'MyModule/Work.pm'};
my $mypath =~ s/Work\.pm/OtherFile.txt/;
open(my $fh, "<", $mypath);