Nic*_*oft 0 linux perl cgi module
我创建了自己的Perl模块.我从文件Config.pm中引用它.
当我从Perl模块中获取内容并将其复制到Config.pm时,脚本会被适当地触发.但是当我把它包括在内时:
use severalnines;
Kernel::severalnines::config_severalnines($Self);
Run Code Online (Sandbox Code Playgroud)
它没有被触发.我确信找到该文件是因为当我尝试更改文件名时,我收到错误(脚本标题的过早结束:).
这是我要包含在Config.pm中的文件(several nins.pm):
package Kernel::severalnines;
sub config_severalnines
{
$Self->{TicketAcl}->{'ACL-Name-Typer'} = {
Properties => {Frontend => {Action => ['CustomerTicketMessage']},
# current ticket match properties
CustomerUser => {
Group_rw => [ 'Incident Management Severalnines', ],
},
},
Possible => {
Ticket => {
Type => ['Incident',],},
},
};
}
1;
Run Code Online (Sandbox Code Playgroud)
onesnines.pm位于/usr/lib/perl5/5.12.3中,在执行perl -V时列出.
问题是什么?
先感谢您!
你的子程序没有对它传递的参数做任何事情; 相反,它正在设置一个包变量$Kernel::severalnines::Self.
加:
my ($Self) = @_;
Run Code Online (Sandbox Code Playgroud)
在子程序代码的顶部.
另外,添加:
use strict;
use warnings;
Run Code Online (Sandbox Code Playgroud)
到模块文件的顶部(或者可能在之后package ...;).这会提醒您使用未声明的变量.
| 归档时间: |
|
| 查看次数: |
73 次 |
| 最近记录: |