【发布时间】:2017-06-18 07:50:36
【问题描述】:
我在使用 glob 搜索文件时遇到了一些奇怪的行为。
(我认为这是有意的,但在我的情况下我不想要它)
我有两个名为 aaa:bbb 和 aaa:ccc 的文件。
我有代码可以查看前缀为 aaa:* 的文件是否存在。我用这段代码来做这个:
my $filelocation_special = "aaa";
if (glob($filelocation_special . ":*")) {
# file(s) exists!
}
这行得通。但是,如果我再次运行相同的代码两次 glob 返回 undefined。
这些是我的回报:(反正大部分时间)
print STDERR "glob: " . glob($filelocation_special . ":*") . "\n";
# 1 run: aaa:bbb
# 2 run: aaa:ccc
# 3 run:
我可以做些什么来重置 glob总是只检查带有这个前缀的文件是否存在?
也许我应该完全使用一些不同的检查,但我似乎找不到任何快速的东西,只是检查文件是否存在。
【问题讨论】:
-
这是来自perldoc.perl.org/File/Glob.html 的
CORE::glob或:bsd_glob? -
请求来自我们的 iOS 应用。所以运行的代码之间会有一些延迟。运行 3 次大约需要 5 秒。
-
将
glob的结果分配给一个数组可以解决这个问题,您很可能想知道文件的名称以及它们是否存在。