Я не эксперт Perl, но я пытаюсь изменить OTRS программного обеспечения, чтобы добавить поддержку для столбца CustomerCompanyName следующим образом, но я получаю ошибкуГлобальный символ «% CustomerCompanyName» требует явного имени пакета
Global symbol "%CustomerCompanyName" requires explicit package name at /opt/otrs//Kernel/Output/HTML/Dashboard/TicketGeneric.pm line 1516.
Я немного искал и выяснил, что это проблема с объявлением «мое» и переменной, но через некоторое время я еще не выяснил, что я делаю неправильно.
Изменение применяется путем добавления в этой строке: https://github.com/OTRS/otrs/blob/1e908159a5dbdcfb94cc35d13bf15b04ac3e6a24/Kernel/Output/HTML/Dashboard/TicketGeneric.pm#L1510
elsif ($Column eq 'CustomerCompanyName') {
# get customer name
my $CustomerCompanyName;
if ($Ticket{CustomerID}) {
$CustomerCompanyName = $Kernel::OM->Get('Kernel::System::CustomerCompany')->CustomerCompanyGet(
CustomerID => $Ticket{CustomerID},
);
$CustomerCompanyName = $CustomerCompanyName{'CustomerCompanyName'};
}
$DataValue = $CustomerCompanyName;
}
Какое значение возвращает 'CustomerCompanyGet'? – toolic
Что вы ожидаете '$ CustomerCompanyName {'CustomerCompanyName'}' содержать? Как он может содержать что-либо вообще, учитывая, что вы только что инициализировали его с помощью 'my'? – tripleee
$ CustomerCompanyName = $ CustomerCompanyName -> {'CustomerCompanyName'}; при условии, что CustomerCompanyGet возвращает хеш-ссылку – Andrey