繁体   English   中英

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

[英]How can I open a file in Perl using a wildcard in the directory name?

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

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

我尝试了以下内容

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

但是我收到了一个错误

关闭文件句柄上的readline()

使用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

作为一般说明,您应该检查open是否成功 ,而不是简单地假设它已经成功,那么当您实际上没有首先打开文件时,您将不会获得“readline on closed filehandle”错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM