Как я могу получить все файлы в каталоге, но не в подкаталогах, в Perl?

StackOverflow https://stackoverflow.com/questions/1826675

  •  22-07-2019
  •  | 
  •  

Вопрос

Как найти все файлы, которые соответствуют определенным критериям ( -M , возраст модификации в днях) в списке каталогов, но не в их подкаталогах?

Я хотел использовать File :: Find, но похоже, что он всегда идет и в подкаталогах.

Это было полезно?

Решение

@files = grep { -f && (-M) < 5 } <<*>/*> for @folders;

Другие советы

Используйте readdir или File :: Slurp :: read_dir в сочетании с grep .

 #!/usr/bin/perl

use strict;
use warnings;

use File::Slurp;
use File::Spec::Functions qw( canonpath catfile );

my @dirs = (@ENV{qw(HOME TEMP)});

for my $dir ( @dirs ) {
    print "'$dir'\n";
    my @files = grep { 2 > -M and -f }
                map { canonpath(catfile $dir, 

Используйте readdir или File :: Slurp :: read_dir в сочетании с grep .

<*>) } read_dir $dir; print "

Используйте readdir или File :: Slurp :: read_dir в сочетании с grep .

<*>\n" for @files; }

Вы можете установить File :: Find :: prune в функции 'wanted', чтобы пропустить деревья каталогов. Добавьте что-то вроде $ File :: Find :: prune = 1 if (-d & amp; $ File :: Find :: name ne ". & Quot;);

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top