LSコマンドは、Net::FTPで期待するものを提供していません。文字列(ファイル名)の配列を返すことを期待していましたが、文字列の配列を含む配列を取得しました。
use strict;
use Net::FTP::Common;
my ($host, $user, $pw) = ('<ftp site>', 'user', 'pw');
my $ftp = new Net::FTP($host) || die;
$ftp->login($user, $pw) || die;
my $pwd = $ftp->pwd();
my $subDir = 'subdir/';
my $pattern = '*.txt';
$ftp->cwd($subDir);
$ftp->pasv(); # passive mode
my @files = $ftp->ls($pattern) || die;
$ftp->cwd($pwd);
ファイル配列は次のようになります。次に例を示します。
@files [@array [0]] ='filename.txt';
また、ディレクトリを変更せず$ftp->ls('subdir/*.txt');
、同じ結果で実行しようとしました。
なぜこれをしているのですか?戻り値を誤解していますか?これはWINDOWSにあります。