Net::FTP - FTP Client class - metacpan.org
lsは配列でファイル一覧を返してくれるけど、nlstとかlistはNet::FTP::dataconnを返すらしい。OS依存のデータを返すから*1しょうがないのだろうけど。
use strict; use warnings; use Net::FTP; my ($ftp, $datacon, $buf); $ftp = Net::FTP->new("host.name", Debug => 1); $ftp->login("anonymous", 'kkobayashi@somewhere'); unless($datacon = $ftp->nlst('-l /')){ $ftp->quit; exit; } print $buf while($datacon->read($buf, 256)); $datacon->close; $ftp->quit;
こんなもんかな。dataconnの方を先にcloseしておかないとquitでハングすることがあります。困ったもんだ。
*1:内部でネイティブなlsとかが実行される