Мой модуль Perl найден, но не применяется - PullRequest
0 голосов
/ 21 июля 2011

Я создал свой собственный модуль Perl. Я ссылаюсь на это из файла Config.pm.

Когда я беру контент из моего модуля Perl и копирую его в Config.pm, скрипт запускается соответствующим образом. Но когда я включаю это так:

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

не срабатывает. Я уверен, что файл найден, потому что, когда я пытаюсь изменить имя файла, я получаю ошибки (преждевременный конец заголовка скрипта:).

Это файл (twonines.pm), который я хочу включить в Config.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;

Несколькоniines.pm находится в /usr/lib/perl5/5.12.3, который указан при выполнении perl -V.

В чем может быть проблема?

Заранее спасибо!

1 Ответ

5 голосов
/ 21 июля 2011

Ваша подпрограмма ничего не делает с параметром, которому она передана;вместо этого он устанавливает переменную пакета $Kernel::severalnines::Self.

Добавить:

my ($Self) = @_;

в верхней части кода подпрограммы.

Также добавьте:

use strict;
use warnings;

в начало файла вашего модуля (или, возможно, после package ...;).Это предупредило бы вас, что вы используете необъявленную переменную.

...