НЕ МОЖНО перечислить директорию, включая пространство, используя Perl на платформе Windows

Для того чтобы перечислить патчи в Windows, я написал ниже функцию Perl (выполняется в среде выполнения StrawBerry).

sub listpath
{
   my $path = shift;
   my @list = glob "$path/*";
   #my @list = <$path/*>;
   my @pathes = grep {  -d and $_ ne "." and $_ ne ".." } @list;
}

Но она не может правильно разобрать каталог, включающий пробел, например:

Когда я выдал следующий код: listpath("e:/test/test1/test11/test111/test1111/test11111 - Copy");

Функция вернула массив, включающий два элемента:

1: e:/test/test1/test1/test111/test1111/test1111/test11111 2: -

Мне интересно, может ли glob разобрать каталоги выше пространства. Большое спасибо.

9
задан thinkhy 26 October 2011 в 03:38
поделиться