2017-08-24 12 views
1

特定のディレクトリ(サブディレクトリ内のファイルを含む)内のすべてのファイルのフルネームのリストを取得する最も簡単な方法は何ですか?ディレクトリ内のすべてのファイルのリストを取得する(Perl)

はい、私はFile::Findモジュールについて知っています。しかし、より簡単な方法はありますか?

+0

「最も簡単」を定義... –

+0

Perlを完全に避けて、別のツールを使うことができない限り、 'File :: Find'よりも簡単になるとは思いません。これらのファイルには、Linuxで 'du -hs'を使うことができます。 – Robert

+1

[Path :: Tiny-> iterator](https://metacpan.org/pod/Path::Tiny#iterator) –

答えて

4

File::Find::Ruleは、あなたが最初のオブジェクトmy $ffr = File::Find::Ruleを取得し、それにルールを設定することができる非常に便利なツール

perl -Mstrict -MFile::Find::Rule -wE' 
    my @all = File::Find::Rule->in("."); 
    say for @all 
' 

です。

Path::Tiny->iteratorは「レイジー」ツリーあなたは非常に便利遭遇した内容を調べることができます

perl -Mstrict -MPath::Tiny -wE' 
    my $iter = path(".")->iterator({recurse => 1}); 
    while (my $path = $iter->()) { say $path } 
' 

を歩くために、同様に非常にいいです。このモジュールには、ファイルシステム作業のための他の多くの用途と利便性がありますが、これはほぼ「側面」機能です。

Path::Iterator::Ruleも、機能と使いやすさの両方を考慮する価値があるようです。

関連する問題