Net::FTP::Recursiveをつかってみた( Perl CPANモジュール )

FC2はFTPアップロードができるので、ローカルディレクトリの内容を
一括でアップロードするための手段をさがしているときに
CPANモジュールのNet::FTP::Recursiveを見つけたので、使い方メモ。

サンプルコードは以下。

#!/usr/bin/perl

use strict;
use warnings;
use Data::Dumper;

use Net::FTP::Recursive;

my $ftp = Net::FTP::Recursive->new("***ftphostname***", Debug => 0)
    or die "Cannot connect to some.host.name: $@";

$ftp->login('***username***','***password***')
    or die "Cannot login ", $ftp->message;

$ftp->binary
    or die "Cannot change binary mode ", $ftp->message;

$ftp->cwd('***directory***') or die "Cannot change working directory ", $ftp->message;
$ftp->rput() or die "put failed ", $ftp->message;
$ftp->quit;
rput()でローカルのディレクトリ構造を再帰的に
アップロードしてくれるのだが、
ドキュメントとソースを見たところ、
このスクリプトがあるディレクトリ以下を、uploadするようで、
指定したローカルディレクトリ以下をuploadしたいができなかった

#-------------------------------------------------------------#
#
# read_current_directory()
#
# Used by the _rput() method to retrieve the list of local
# files to send to the remote server.  This eliminates the need
# to use "ls" or "dir" to read the local directory and then parse
# the output from those commands.
#
#-------------------------------------------------------------#
sub read_current_directory {
    opendir THISDIR, '.' or die "Couldn't open ", getcwd();
思いっきり「.」を開いてファイルを見てる。
この仕様はいまいちすぎるのではないか、という印象

まちがってたら誰か教えて。

人気の投稿