1


可能我的问题很简单,但我在文档中找不到答案,希望有人能提供帮助。

问:映射文件名和文件系统路径以使用'd / require 'd 模块和用于声明的名称的规则是什么,尤其是在使用点或逗号等非标准符号时?找到与这些场景相关的 mod_perl 的PerlModulePerlRequire Apache 指令的类似答案也很好。

作为一个具体的例子,我有一个 mod_perl 项目位于带有点和逗号的路径中

/var/www/projects/my.awesome.project,with,comma/code
我必须在 Apache 的conf文件中加载一个模块的代码:

PerlModule my.awesome.project,with,comma::code::MyModule

我还必须像这样声明我的包裹

打包 my.awesome.project,with,comma::code::MyModule;

(我从@INC 指向/var/www/projects 的自定义路径之一)

当然,这是行不通的。这些路径必须映射到其他东西。还是根本不可能,每个人都必须使用仅包含字母数字符号和下划线的路径?

提前感谢您的任何帮助/回答。

4

1 回答 1

5

Perl 包名是标识符,这意味着它们必须以字母或下划线开头,并且只能包含字母、数字和下划线。它们也可以是多个标识符,以 . 分隔::。唯一的文件名映射是::被转换为/(或任何系统目录分隔符)。包名称中不允许使用逗号和句点。

@INC没有那个限制,所以你可以添加/var/www/projects/my.awesome.project,with,comma它然后命名包code::MyModule。但是您最好还是坚持使用字母数字和下划线作为目录名称。

于 2011-04-13T15:21:39.887 回答