end0tknr's kipple - 新web写経開発

http://d.hatena.ne.jp/end0tknr/ から移転します

Net::FTPのノリで、Net::SFTP->new() すると error

Net::FTP - search.cpan.org
Net::SFTP - search.cpan.org

Net::FTP -> Net::SFTP への移行で、何も考えずに Net::FTP -> Net::SFTP の置換後、次のようなsrcでnewすると...

use Net::FTP;

my $ftp = Net::FTP->new('hogehoge.host.jp', Debug => 0) or
    die "cannot connect $@";
$ftp->login('hoge_user','hoge_passwd') or
	    die "can't ftp login ", $ftp->message;
$ftp->binary();
   :

↑これを↓このように単純置換

use Net::SFTP;

my $ftp = Net::SFTP->new('hogehoge.host.jp', Debug => 0) or
    die "cannot connect $@";
$ftp->login('hoge_user','hoge_passwd') or
	    die "can't ftp login ", $ftp->message;
$ftp->binary();
   :

すると、次のようなエラー

Received disconnect message: Too many attempts.
 at /usr/local/lib/perl5/site_perl/5.10.1/Net/SSH/Perl/AuthMgr.pm line 143.

そもそも、new()の引数が違うみたい。classも、作者も、異なるので、当然か...
で、次のように修正.

use Net::SFTP;

my $ftp = Net::SFTP->new('hogehoge.host.jp',
                         user=>'hoge_user',
                         password=>'hoge_passwd');
#$ftp->binary();
   :

documentは読みましょう