当我使用Net :: SFTP连接到我的SFTP服务器时,出现了一个奇怪的错误。
我的脚本从oracle获取SFTP连接信息,然后使用Net :: SFTP连接到SFTP服务器。
当我运行perl
脚本时,它因以下错误而失败:
连接被远程主机关闭。在/usr/local/lib64/perl5/Net/SSH/Perl/AuthMgr.pm
# $rSelectInfoRef = (the connection infomation from oracle)
$host = $rSelectInfoRef->[0][2];
$user = $rSelectInfoRef->[0][3];
$password = $rSelectInfoRef->[0][4];
print "[DEBUG] $host|$user|$password|\n";
my $sftp;
eval {
$sftp = Net::SFTP->new($host, user=>$user, password=>$password);
};
if( $@ ) {
print "[ERROR] $@";
exit -1;
}
但是,当我直接分配这些连接变量时,脚本将成功运行。我没有更改连接信息。令我感到困惑的是,相同的价值却有不同的结果。
#$host = $rSelectInfoRef->[0][2];
#$user = $rSelectInfoRef->[0][3];
#$password = $rSelectInfoRef->[0][4];
$host = "168.16.5.110";
$user = "test";
$password = "000000";
print "[DEBUG] $host|$user|$password|\n";
my $sftp;
eval {
$sftp = Net::SFTP->new($host, user=>$user, password=>$password);
};
if( $@ ) {
print "[ERROR] $@";
exit -1;
}
答案 0 :(得分:0)
我认为问题出在变量没有被正确评估。试试看它是否有效:
void real_func(const vector<int>& v) {
cout << "size: " << v.size() << endl;// the output is 3, 3
}