1

Perl 新手在这里几乎没有时间和支持来学习 Perl,但管理层的所有期望都是像 Perl Pro 一样使用它:)

我在 Cygwin(Windows 10)下使用 Perl(Larry Wall 的 v5.30.2)

我的开发人员发布了一个新脚本,它现在使用了我没有的 Perl 模块。
然后他们给我发了 .pm 文件(他们自己编写的,不在任何在线 Perl 存储库中)。

我无法使用 CPAN 将该文件安装到我的 Perl 执行环境中。

  1. .pm 文件应该保存在哪里?(请指定确切的文件夹)
  2. 如何告诉 CPAN 安装此文件以供使用?理想情况下,一次性的事情,因为我不想忘记安装这个文件,如果我每次需要运行 Perl 脚本时都必须这样做......
  • 以防万一亲爱的回答者可能有任何安全问题:这里没有任何安全问题,这都是在没有连接到互联网的环境下。
4

1 回答 1

1

Perl 模块只是一个文件(或文件的集合)。你不必把它们放在任何特别的地方,但你需要告诉 Perl 在哪里可以找到它们。

当您调用userequire使用裸词时,Perl 将该模块名称翻译Some::ModuleSome/Module.pm(或任何适合您系统的名称。还有人在使用 VMS 吗?)。

一旦有了模块的文件名形式,它就会在@INC. 它尝试第一个目录。如果它没有找到它,它会移动到下一个,依此类推。这些目录是在有人配置和安装 Perl 时决定的。并且,在 v5.26 之前,它包含了当前工作目录(请参阅v5.26 从 @INC 中删除点并且Perl 默认情况下不包含 @INC 中的当前目录吗?

但是,你可以告诉 Perl 去哪里找。perlfaq8How do I add a directory to my include path (@INC) at runtime? . ikegami 还在FindBin评论中显示(如何将我的程序所在的目录添加到模块/库搜索路径?)。

除此之外,您可以告诉 require 加载路径,尽管您需要确保程序可以找到该路径,即使有人从另一个目录运行它

 require './this_file/over/here';
 require '/usr/local/lib/this_file/over/here';
于 2021-01-21T12:53:26.593 回答