【发布时间】:2023-03-20 04:30:01
【问题描述】:
我创建了一个包含几个额外文件的模块,这些文件位于清单中,并在我运行“make install”时安装,以及MyModule.pm
我的问题是如何从MyModule 引用这些?
my $mfile = "incfile1.txt'; # this fails , as does ./ / etc
【问题讨论】:
我创建了一个包含几个额外文件的模块,这些文件位于清单中,并在我运行“make install”时安装,以及MyModule.pm
我的问题是如何从MyModule 引用这些?
my $mfile = "incfile1.txt'; # this fails , as does ./ / etc
【问题讨论】:
取决于这些文件的安装位置。
如果它们相对于模块的 .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);
【讨论】: