Perl File :: Find:首先列出目录中的所有文件,然后跳转到下一个目录?

mar*_*rix 3 perl file-find

我想(通过使用File :: Find)首先列出当前目录中的所有文件,然后跳转到子目录.可能吗?

yst*_*sth 8

使用预处理选项在下降到子目录之前执行每个目录中的文件:

use strict;
use warnings;
use File::Find 'find';

find(
    {
        'wanted' => sub { print "$File::Find::name\n" },
        'preprocess' => sub { sort { -d $a <=> -d $b } @_ }
    },
    '.'
);
Run Code Online (Sandbox Code Playgroud)

虽然要避免额外的统计数据,但它应该是:

sub { map $_->[0], sort { $a->[1] <=> $b->[1] } map [ $_, -d $_ ], @_ }
Run Code Online (Sandbox Code Playgroud)