全球符号"%CustomerCompanyName"需要显式包名称

时间:2016-01-20 15:15:37

标签: perl otrs

我不是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

1 个答案:

答案 0 :(得分:3)

您看到的问题是由以下行引起的:

$CustomerCompanyName = $CustomerCompanyName{'CustomerCompanyName'};

看起来你打算写:

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

(注意解除引用箭头)。

$CustomerCompanyName{'CustomerCompanyName'}是散列%CustomerCompanyName中的一个键,它与$CustomerCompanyName不同,是您声明的标量,然后给出一个值(可能是散列引用)。