【发布时间】:2011-09-11 18:59:19
【问题描述】:
我正在尝试编写一个执行预购目录遍历的 Perl 脚本。我需要它来获取给定目录的所有子目录,包括隐藏目录。不幸的是,当我尝试以这种方式进行 glob 时:
... ".*" 导致 "."和“..”也被返回,这会弄乱我的函数,因为它会导致无限循环。如何仅获取 $dir 的子文件夹,包括常规和隐藏的,不是当前或上级目录?
例如,如果我的文件夹是“dir”并且它包含这些子目录:
你好
.hiddendir
“名称中有空格的目录”
“.hidden 目录,名称中有空格”
目录2
...我想得到一个只有这些而不是“。”的数组。或“..”。
我不在乎文件是否也会显示,因为我稍后会使用“if (-d $dir)”。有没有办法可以测试全局数组的元素是否等于当前目录或父目录,以便我可以排除它们?
谢谢
【问题讨论】:
-
那么说
if (-d $dir && $dir ne '.' && $dir ne '..') { ...有什么问题?
标签: perl directory hidden traversal glob