我创建了一个包含多个额外文件的模块,这些文件位于Manifest中,并在运行'make install'时安装,同时还有MyModule.pm
我的问题是如何从MyModule
引用这些内容?
my $mfile = "incfile1.txt'; # this fails , as does ./ / etc
答案 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);