Windows Perl包问题
我是Perl新手 我加载了一个perl应用程序,在源文件中有这样一行:Windows Perl包问题,windows,eclipse,perl,activeperl,Windows,Eclipse,Perl,Activeperl,我是Perl新手 我加载了一个perl应用程序,在源文件中有这样一行: use PWING::Utils::Utils; 它导入一个看起来像的文件 我下载了一个Eclipse插件[Perl Eclipse集成]。 当我尝试将该文件作为perl应用程序启动时,它表示找不到导入的资源 现在的问题是,perl包结构是什么样的 该行表示必须有如下目录结构: PWING - Utils - Utils.pm ? 我发现我下载的应用程序
use PWING::Utils::Utils;
它导入一个看起来像的文件
我下载了一个Eclipse插件[Perl Eclipse集成]。
当我尝试将该文件作为perl应用程序启动时,它表示找不到导入的资源
现在的问题是,perl包结构是什么样的
该行表示必须有如下目录结构:
PWING -
Utils -
Utils.pm ?
我发现我下载的应用程序不包含这样的结构,因此如何启动?在Unix系统上,该文件位于以下目录中
lib/PWING/Utils/Utils.pm
但问题是检测顶级目录“lib”可能在哪里
如果模块安装在您的系统上,它将被放在Perl可以找到它的地方。文档说明
所有Perl模块文件的扩展名都是.pm
。use
操作符假定这一点,因此您不必在引号中拼写出“Module.pm”
。这也有助于区分新模块与旧的.pl
和.ph
文件。模块名称也大写,除非它们作为pragmas使用;pragma实际上是编译器指令,有时被称为“实用模块”(如果你是古典主义者,甚至可以称为“pragmata”)
两项声明:
require SomeModule;
require "SomeModule.pm";
在两个方面彼此不同。在第一种情况下,模块名称中的任何双冒号(如Some::module
)都会转换为系统的目录分隔符,通常为“/”
Perl包可能嵌套在其他包名中,因此我们可以让包名包含:
。但是,如果我们直接使用这个包名作为文件名,那么在某些系统上可能会产生难以处理或不可能使用的文件名。因此,如果模块的名称是,比如说,Text::Soundex
,那么它的定义实际上可以在库文件Text/Soundex.pm中找到
特殊数组包含要搜索模块的目录:
@公司
数组@INC
包含执行EXPR
、需要
或使用
构造查找其库文件的位置列表。它最初由任何-I
命令行开关的参数组成,后面是默认的Perl库,可能是/usr/local/lib/Perl
,后面是“
,以表示当前目录。(”
如果通过-T
或-T
启用了污染检查,则不会附加“”)如果您需要在运行时对此进行修改,您还应使用使用lib
杂注来正确加载依赖于机器的库:
use lib '/mypath/libdir/';
use SomeMod;
您使用的是Windows和ActiveState的ActivePerl,还是Linux?您下载的应用程序-
PWING::Utils::Utils
似乎不是CPAN模块。