2016-01-20 2 views
0

Я не эксперт 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; 
     } 
+0

Какое значение возвращает 'CustomerCompanyGet'? – toolic

+0

Что вы ожидаете '$ CustomerCompanyName {'CustomerCompanyName'}' содержать? Как он может содержать что-либо вообще, учитывая, что вы только что инициализировали его с помощью 'my'? – tripleee

+1

$ CustomerCompanyName = $ CustomerCompanyName -> {'CustomerCompanyName'}; при условии, что CustomerCompanyGet возвращает хеш-ссылку – Andrey

ответ

3

Проблема вы видите вызвана линии:

$CustomerCompanyName = $CustomerCompanyName{'CustomerCompanyName'}; 

и, похоже, вы имели в виду, чтобы написать:

$CustomerCompanyName = $CustomerCompanyName->{'CustomerCompanyName'}; 

(обратите внимание на стрелку разыменования).

$CustomerCompanyName{'CustomerCompanyName'} является ключевым в хэш %CustomerCompanyName, который отличается от $CustomerCompanyName скалярная вы объявили, а затем дал значение (предположительно хэш-реф).

Смежные вопросы