Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String Perl警告:使用带多个点(.)的字符串时使用未初始化值_String_Perl_String Interpolation - Fatal编程技术网

String Perl警告:使用带多个点(.)的字符串时使用未初始化值

String Perl警告:使用带多个点(.)的字符串时使用未初始化值,string,perl,string-interpolation,String,Perl,String Interpolation,我对Perl脚本有点陌生。我正在尝试远程SSH到Linux机器,我的代码如下: my $hostname = "something.xyz.abc.com"; my $uid = "userid"; my $pwd = "pass"; my $ssh = Net::SSH::Perl->new($hostname); $ssh->login($uid, $pwd); my($stdout, $stderr, $exit) = $ssh->cmd("ls -l"); print

我对Perl脚本有点陌生。我正在尝试远程SSH到Linux机器,我的代码如下:

my $hostname = "something.xyz.abc.com";
my $uid = "userid";
my $pwd = "pass";

my $ssh = Net::SSH::Perl->new($hostname);
$ssh->login($uid, $pwd);
my($stdout, $stderr, $exit) = $ssh->cmd("ls -l");
print $stdout;
是什么原因让我看到了

“使用带多个点(.)的字符串时使用未初始化的值”

警告?如何避免/抑制它?这些多个点是否造成了问题

具体错误消息如下:

在C:/dwimpel/perl/site/lib/Net/SSH/perl/Key.pm第13行、第57行的串联(.)或字符串中使用未初始化的值。
在C:/dwimpel/perl/site/lib/Net/SSH/perl/Key.pm第41行、第59行的拆分中使用未初始化值$blob。
在C:/dwimpel/perl/site/lib/Net/ssh/perl/Key.pm第42行、第59行的散列元素中使用未初始化值$ssh_name。
在C:/dwimpel/perl/site/lib/Net/SSH/perl/Key.pm第45行、第59行的子例程条目中使用未初始化值。

这与
regex
有什么关系?你能告诉我你在执行时给出的主机名吗?哪一行产生了错误?NetLLSSH:Perl::Key的第13行正在执行
$class.=“::”。移位()由于这只是一个基本clas,它会向它传递一个参数,该参数是您将在ssh连接中使用的基于密钥的交换类型,这样它就可以选择正确的密钥实现。但是,由于在方法调用ssh时没有将任何参数传递给主机名,因此它不知道要使用什么类型的密钥。您是否设置了默认ssh路径?传递给Key类的值似乎是空的,因此当它尝试连接它时,会抛出一个警告。您是否在Perl命令行上使用
-w
?如果是,不要:您可以添加
使用警告,但如果包含其他人的模块,则千万不要使用
-w
,因为它会在任何地方打开警告,并且模块通常假定警告未启用!
Use of uninitialized value in concatenation (.) or string at C:/Dwimperl/perl/site/lib/Net/SSH/Perl/Key.pm line 13, <$fh> line 57.
Use of uninitialized value $blob in split at C:/Dwimperl/perl/site/lib/Net/SSH/Perl/Key.pm line 41, <$fh> line 59.
Use of uninitialized value $ssh_name in hash element at C:/Dwimperl/perl/site/lib/Net/SSH/Perl/Key.pm line 42, <$fh> line 59.
Use of uninitialized value in subroutine entry at C:/Dwimperl/perl/site/lib/Net/SSH/Perl/Key.pm line 45, <$fh> line 59.