gpt4 book ai didi

linux - 我的 Perl 模块已找到但未被应用

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:54:05 26 4
gpt4 key购买 nike

我已经创建了自己的 Perl 模块。我从文件 Config.pm 中引用它。

当我从我的 Perl 模块中获取内容并将其复制到 Config.pm 时,脚本会被适本地触发。但是当我这样包含它时:

use severalnines;
Kernel::severalnines::config_severalnines($Self);

它没有被触发。我确定已找到该文件,因为当我尝试更改文件名时,出现错误(脚本头过早结束:)。

这是我要包含在 Config.pm 中的文件 (severalnines.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;

severalnines.pm 位于执行 perl -V 时列出的/usr/lib/perl5/5.12.3。

可能是什么问题?

提前致谢!

最佳答案

您的子例程没有对传递给它的参数做任何事情;相反,它设置了一个包变量 $Kernel::severalnines::Self

添加:

my ($Self) = @_;

在您的子例程代码的顶部。

此外,添加:

use strict;
use warnings;

到模块文件的顶部(或者可能在 package ...; 之后)。这会提醒您您正在使用未声明的变量。

关于linux - 我的 Perl 模块已找到但未被应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6774246/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com