Я запускаю Perl в Windows, и я получаю список всех файлов в каталоге, используя readdir и сохраняя результат в массиве. Первые два элемента в массиве кажутся всегда «.» а также "..". Гарантирован ли этот заказ (если операционная система не изменяется)?Perl's 'readdir' Функция Result Order?
Я хотел бы сделать следующее, чтобы удалить эти значения:
my $directory = 'C:\\foo\\bar';
opendir my $directory_handle, $directory
or die "Could not open '$directory' for reading: $!\n";
my @files = readdir $directory_handle;
splice (@files, 0, 2); # Remove the "." and ".." elements from the array
Но я боюсь, что это может быть не безопасно сделать так. Все решения, которые я видел, используют регулярные выражения или инструкции для каждого элемента в массиве, и я бы предпочел не использовать любой из этих подходов, если мне это не нужно. Мысли?
«Все решения, которые я видел, используют регулярные выражения или выражения для каждого элемента массива, и я бы предпочел не использовать ни один из этих подходов« Почему бы и нет? – ThisSuitIsBlackNot
Вы должны понимать, что все найденные вами решения используют этот подход. Регулярное выражение, совпадающее с ведущим. также позволяет игнорировать файлы, имена которых начинаются с символа «.», который является стандартным способом сокрытия файлов в мире «nix». –
@ RobK, я сделал. Вот почему я задавал этот вопрос в первую очередь. :) –