ftpでダウンロードしたファイルやディレクトリがファイルやディレクトリであればテストしたいと思います。以下のコードでは、else ステートメント ( 2,4,6 )を常に取得します$x
(ファイルまたはディレクトリ)。このコードの何が問題になっていますか?
use Net::FTP;
my $host = "whatever";
my $user = "whatever";
my $password = "whatever";
my $f = Net::FTP->new($host) or die "Can't open $host\n";
$f->login($user, $password) or die "Can't log $user in\n";
# grep all folder of top level
my @content = $f->ls;
# remove . and ..
@content = grep ! /^\.+$/, @content;
foreach my $x (@content) {
print "\n$x: ";
if ( -f $x ) {print " ----> (1)";} else {print " ----> (2)";}
if ( -d $x ) {print " ----> (3)";} else {print " ----> (4)";}
if ( -e $x ) {print " ----> (5)";} else {print " ----> (6)";}
}