如何在目录名中使用通配符在Perl中打开文件?

时间:2016-02-18 02:18:31

标签: perl

我需要从一个根据创建日期命名的目录中打开一个名为OrthologousGroups.txt的文件。例如./Results_2016-2-7

有没有办法在我需要访问的文件的路径名中使用通配符?

我尝试了以下

open(FILE, "./Results*/OrthologousGroups.txt");

但是我收到了错误

  关闭文件句柄上的

readline()

1 个答案:

答案 0 :(得分:6)

使用glob获取与glob模式匹配的文件名列表:

my @files = glob "./Results*/OrthologousGroups.txt";

if (@files != 1) {
    # decide what to do here if there are no matching files,
    # or multiple matching files
}

open my $fh, $files[0] or die "$! opening $files[0]";

# do stuff with $fh

作为一般说明,你应该检查是否打开成功,而不是简单地假设它,然后你不会在关闭的文件句柄上获得" readline"当你没有在第一时间实际打开文件时出现错误。