簡體   English   中英

使用Perl模塊File :: Find :: Rule查找匹配的文件

[英]Finding matching files with Perl module File::Find::Rule

我正在嘗試使用File::Find::Rule模塊在子目錄中查找特定文件( output.txt ),如果沒有,請在根目錄中搜索以查看是否存在。 問題是存在多個output.txt文件,因此,如果找不到原始文件,我們應該只尋找其他文件。

基本上目錄結構是這樣的

top
    level-1-a
        level-2-a
            output.txt
        level-2-b
            output.txt
    level-1-b
        level-2-a
            output.txt
        level-2-b
            output.txt

現在我有:

    @files = File::Find::Rule->file()->name($output)->in($sub_dir);

    if ( ! @files ) {
        @files = File::Find::Rule->file()->name($output)->in($root_dir);
    }

行為所在的地方,我們首先在\\top\\level-1-a查找output.txt,然后在level-2-alevel-2-b找到匹配項。 如果在level-1-a下沒有匹配的文件,我們將在\\top上進行相同的調用以查找顯示在level-1-b目錄中的匹配項。 有沒有更干凈的方法可以驗證“ if-else”的想法?

我會一次檢查一個子目錄。 這是一個例子。 一旦找到包含所需文件的子目錄, last就會脫離for循環

my @files;

for my $subdir ( 'level-1-a', 'level-1-b' ) {
    last if @files = File::Find::Rule->file()->name($output)->in("/top/$subdir");
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM