【发布时间】:2022-01-14 10:28:22
【问题描述】:
我正在尝试使用 glob 匹配目录中的“program.log”或“program.log.gz”或两者,但 glob 将两个字符串都返回到 @array,无论它们是否存在。
我做到了
@array = glob ("$dir/program.{log,log.gz}");
现在@array 包含
$dir/program.log
$dir/program.log.gz
不管它们是否真的存在。
似乎 glob 只是扩展字符串并将其传递给@array,而不管文件是否实际存在。这是 glob 的预期行为吗?如果是这样,我如何只将存在的文件名传递给@array?
【问题讨论】:
-
就像在 shell 中一样,只有
*和?执行文件系统扩展。例如,glob("{a,b}{c,d}")将返回ab、ad、bc、bd,无论这些文件是否存在。
标签: perl