我正在尝试使用Net :: SFTP连接到远程服务器。
我的脚本是:
my %args = (
ssh_args => {
user => 'canneu_scp',
identity_files => [ '/home/home1/cgrshah/responsys/capgemini.private' ],
debug => 1,
} );
my $targetserver='files.responsys.net';
my $sftp = Net::SFTP->new($targetserver, %args)
or die "could not open connection to $targetserver\n";
但是当我运行这个时,我得到一个错误说明:
Not an ARRAY reference at /usr/lib/perl5/site_perl/5.8.1/Net/SFTP.pm line 36.
任何人都可以帮我吗?
答案 0 :(得分:5)
这只是一个在黑暗中的疯狂镜头,但user
选项不应该在传递给ssh_args
的哈希值中,它处于同一级别。请尝试使用此代码:
my $sftp = Net::SFTP->new(
$targetserver,
user => 'canneu_scp',
ssh_args => {
identity_files => [ '/home/home1/cgrshah/responsys/capgemini.private' ],
debug => 1,
}
) or die "could not open connection to $targetserver\n";
听起来上面的代码让你更进一步,现在你遇到了问题,因为Math::BigInt
的版本太旧了。我认为有三种方法可以向前发展:
Math::BigInt
版本1.78或更高版本Math::BigInt
第三种选择有很多陷阱,如果你决定采用它,我建议采取以下步骤:
App::cpanminus
wget -O- http://cpanmin.us | perl - --local-lib=~/perl5 App::cpanminus
~/perl5/bin
添加到您的路径Math::BigInt
cpanm --local-lib=~/perl5 Math::BigInt
安装到您的主目录中
use lib "$ENV{HOME}/perl5";
添加到脚本的开头,以便它可以找到新模块