【发布时间】:2011-06-24 19:54:25
【问题描述】:
我对 Perl/Fastcgi 完全陌生。
我有一些 pm-modules 必须添加很多脚本,并且随着时间的推移它会不断增长。因此,我需要一个使管理员更容易的结构。
所以,我想在某种可以包含的目录结构中创建文件。我希望我包含的文件与文本写在我执行包含的文件中一样。
我尝试过“做”、“使用”和“要求”。我要包含的实际文件位于 Perl 正在查找的目录之一中。(使用 perl -V 验证)
我在 BEGIN {} 内外都试过了。
我该怎么做?是否有可能在 pm 文件中包含 pm 文件?它必须是我包含的 pm 文件还是可以是任何扩展名?
我尝试了几种方法,下面是我最后一次尝试。
配置.pm
package Kernel::Config;
sub Load {
#other activities
require 'severalnines.pm';
#other activities
}
1;
severalnines.pm
# Filter Queues
$Self->{TicketAcl}->{'ACL-hide-queues'} = {
Properties => {
},
PossibleNot => {Ticket => { Queue =>
['[RegExp]^*'] },
},
};
1;
我在 Apache 的 error_log 中没有收到任何与此相关的错误。尽管如此,如果我把它放在 Config.pm 文件中,代码仍然无法识别。
我不打算开始大量编程,只是在 3rd 方应用程序中做一些管理。尽管如此,我还是四处寻找,试图了解它如何与包含文件一起工作。被认为是 perl 模块,我需要使用像 h2xs 或类似的程序来“创建”模块(告诉你,完全是新手......)吗?
提前致谢!
【问题讨论】:
-
你试过
require '/full/path/to/file.foo'吗?您是否确保所有这些脚本都返回一个真值(通常通过在文件底部放置一个1;来完成)。此外,它是 Perl,而不是 Pearl。您是否尝试过检查 apache 错误日志?失败的require将使向 stderr 发出错误的进程崩溃。 -
谢谢!我确实添加了 1;因为我没有那个。可以找到该文件,但我认为未使用该代码。请查看我更新后的代码。
-
如果我做了您的任何建议,我仍然需要进行编码才能使用我包含的任何内容。我的观点是不需要在 Config.pm 文件中做任何其他事情,而不仅仅是某种包含。我是否必须查看服务器端包含的内容?
标签: perl include cgi fastcgi perl-module