Я использую модуль Net::FTP::File
, чтобы получить список каталогов в удаленном пути.Казалось, что он работал нормально, пока я не остановился на этом случае, когда каталог с именем en
отображается как просто n
, подробности:
'n' => {
'Bytes' => '4096',
'Group' => 'client3',
'Owner' => '5004',
'Path' => 'n',
'Last Modified Year/Time' => '17:59',
'Permissions' => 'drwxrwxr-x',
'Last Modified Day' => '17',
'Link To' => undef,
'Number of Links' => '7',
'Last Modified Month' => 'Jan'
},
каталог на сервере имеет правильное имя (en
) тот же владелец / группа / права доступа, что и для других каталогов, которые отображаются нормально.
Я сократил контрольный пример до минимума, поэтому я знаю, что проблема не зависит от других ошибок:
#!/usr/bin/perl
use strict;
use warnings;
use Net::FTP::File;
use Data::Dumper;
$Data::Dumper::Terse = 1;
$Data::Dumper::Indent = 1;
my $ftp = new Net::FTP($site);
$ftp->login($user, $pass);
print Dumper $ftp->dir_hashref;
Есть ли что-то, что я делаю неправильно, что может вызвать эту ошибку?Или это ошибка в функции dir_hashref () модуля?
В качестве альтернативы, какой еще (удобный) способ получить только каталоги в списке FTP?Стандартный Net::FTP
предоставляет метод dir()
, но это просто список ls -l
подобных строк, которые необходимо проанализировать.