我有一个存储在 Perl 变量中的字符串,它应该与存储在目录中的文件名的开头部分匹配。
我使用这个变量从目录中找到匹配这个模式的文件,使用 Perl 的 grep。这就是我正在做的事情:
opendir (DIR, "data/testroot/") or die "$!";
@file1 = <$f1/*.hdf>
foreach(@file1){
$patt = substr(basename($_),0,$ind);
$file2 = grep {/${patt}*\.hdf/} readdir(DIR);
#other code follows.......
}
closedir(DIR);
首先,我得到文件夹中所有文件的列表f1
并将它们存储在数组中@file
。然后对于 中的每个条目@file1
,我提取前几个字符,将它们存储在 中$patt
,然后尝试从另一个文件夹data/testroot/
中提取类似文件,这些文件具有存储在 中的匹配开始模式$patt
。
那个 grep$file2 = grep {/${patt}*\.hdf/} readdir(DIR);
不工作。