我需要从一个根据创建日期命名的目录中打开一个名为OrthologousGroups.txt
的文件。例如./Results_2016-2-7
有没有办法在我需要访问的文件的路径名中使用通配符?
我尝试了以下
open(FILE, "./Results*/OrthologousGroups.txt");
但是我收到了错误
关闭文件句柄上的readline()
答案 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"当你没有在第一时间实际打开文件时出现错误。