我不是Perl专家,但我正在尝试编辑OTRS软件以添加对CustomerCompanyName列的支持,如下所示,但我收到错误
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;
}
我已经google了一下,发现"我的"和变量声明,但过了一段时间,我还没有发现我做错了什么。
通过在此行添加来应用更改: https://github.com/OTRS/otrs/blob/1e908159a5dbdcfb94cc35d13bf15b04ac3e6a24/Kernel/Output/HTML/Dashboard/TicketGeneric.pm#L1510
xlCSV
答案 0 :(得分:3)
您看到的问题是由以下行引起的:
$CustomerCompanyName = $CustomerCompanyName{'CustomerCompanyName'};
看起来你打算写:
$CustomerCompanyName = $CustomerCompanyName->{'CustomerCompanyName'};
(注意解除引用箭头)。
$CustomerCompanyName{'CustomerCompanyName'}
是散列%CustomerCompanyName
中的一个键,它与$CustomerCompanyName
不同,是您声明的标量,然后给出一个值(可能是散列引用)。