Perl Can';t使用未定义的值作为符号引用

Perl Can';t使用未定义的值作为符号引用,perl,api,Perl,Api,我正在尝试为Palo Alto Networks软件使用API。该代码应该将用户网络登录的用户名和IP地址提交到web界面 当我尝试在windows计算机的示例代码中使用PANs的API时,会引发以下异常: Can't use an undefined value as a symbol reference at C:/Perl/lib/PAN/API.pm line 179 (#1) PAN::API::UID::login('PAN::API::UID=HASH(0x7fd11382859

我正在尝试为Palo Alto Networks软件使用API。该代码应该将用户网络登录的用户名和IP地址提交到web界面

当我尝试在windows计算机的示例代码中使用PANs的API时,会引发以下异常:

Can't use an undefined value as a symbol reference at
C:/Perl/lib/PAN/API.pm line 179 (#1)

PAN::API::UID::login('PAN::API::UID=HASH(0x7fd113828598)', 'SCU-DSM22/pmmertens', 172.16.6.117) called at API_events.pl line 12
这是API文档附带的代码示例:

#!/usr/bin/perl -w

use strict;
use PAN::API;

my     $useridagent    = '10.0.0.99'; #I changed this to our PAN server address

my     $useridapi      = PAN::API::UID->new($useridagent);

my     $user           = $ENV{USERDOMAIN}.'/'.$ENV{USERNAME};
my     $ipaddress      = unpack('W4',gethostbyname($ENV{COMPUTERNAME}));

    $useridapi->login($user,$ipaddress);
我已确保正确检索所有变量。替换文字值也没有帮助。谷歌搜索这个错误发现了关于硬引用和软引用的引用,但我在下面的代码中没有发现任何违反这些规则的情况

这是来自PAN/Api.pm的代码块。第179行是打印开始的位置

sub submit () {
    my  $self               = shift;

    use IO::Socket::INET;
    use IO::Socket::SSL;

    my  $socket             = IO::Socket::INET->new(PeerAddr => $self->{server},
                                                PeerPort => $self->{port},
                                                Proto    => 'tcp');

    my  $socketssl          = IO::Socket::SSL->start_SSL(   $socket,
                                                    SSL_version     =>'TLSv1');
    print   $socketssl $self->xml;
            $socketssl->close;
            $socketssl->stop_SSL;
}

IO::Socket::INET和IO::Socket::SSL行都应该进行错误检查。比如:

my $socket = IO::Socket::INET->new(....)
  or die "Failed to create socket: $!"
以及:


虽然我可能会使用Carp::坦白来代替死亡。

IO::Socket::INET和IO::Socket::SSL行都应该有错误检查。比如:

my $socket = IO::Socket::INET->new(....)
  or die "Failed to create socket: $!"
以及:


虽然我可能会选择Carp::坦白。

print
语句之前,添加
die“\$socketssl未定义”,除非定义了$socketssl并查看它是否在那里消失。发生完全相同的错误。我有没有办法确保建立到服务器的SSL连接?在这种情况下,如果我输入了错误的服务器IPI,它甚至会给我这个错误,还添加了
die“xml方法未定义”,除非定义了$self->xml我在错误的地方编辑了API.pm。现在死“\$socketssl未定义…”给我$socketssl未定义在/opt/local/lib/perl5/5.12.3/PAN/API.pm第180行。在/opt/local/lib/perl5/5.12.3/PAN/API.pm第180PAN::行中,API不执行错误检查,将其报告为错误。在
print
语句之前,添加
die“\$socketssl not defined”,除非定义了$socketssl并查看它是否在那里消失。发生完全相同的错误。我有没有办法确保建立到服务器的SSL连接?在这种情况下,如果我输入了错误的服务器IPI,它甚至会给我这个错误,还添加了
die“xml方法未定义”,除非定义了$self->xml我在错误的地方编辑了API.pm。现在死“\$socketssl未定义…”给我$socketssl未定义在/opt/local/lib/perl5/5.12.3/PAN/API.pm第180行。在/opt/local/lib/perl5/5.12.3/PAN/API.pm行180PAN::API没有进行错误检查,请将此报告为其中的错误。