Perl File ::查找未记录的Globals

时间:2011-04-08 12:01:20

标签: perl file directory find

$File::Find是遍历目录树的强大方法。

我遇到了(在wanted函数内)确定递归搜索开始的顶级目录的需要。 This perldoc提及$File::Find::topdir,似乎包含了我所需要的内容。所以,我写的特定脚本现在可以工作了。

然而,我很好奇是否有更多关于此的文档以及同一段中提到的其他全局变量:

$File::Find::topdir
$File::Find::topdev
$File::Find::topino
$File::Find::topmode
$File::Find::topnlink
$File::Find::fullname
$File::Find::prune

或者,如果您在自己的脚本编写企业中使用它,你们可以对这些全局变量进行评论。

2 个答案:

答案 0 :(得分:1)

如果没有记录全局变量,它们不是供公众使用的,你最好不要使用它。

top *变量似乎是文件的一些常用元数据,由stats()系统调用返回。 (设备,inode,模式(即访问权限),链接数量)

答案 1 :(得分:0)

$ File :: Find :: prune 已记录在案,非常有用。它类似于Unix的 find 命令的 -prune 选项,可以设置为"不要进入此目录" #34;

文件::查找POD还可以很好地记录 fullname

  • 当"关注"或" follow_fast"实际上,还有一个$File::Find::fullname。 ....有一个变量$File::Find::fullname,它保存文件的绝对路径名,并解析了所有符号链接。如果链接是悬挂的符号链接,则fullname将设置为" undef"。

至于其他人 - 早在90年代早期,在Perl5出现其方便的词汇变量,对象和闭包(以及之前的CPAN)之前,perl附带了File :: Find' s前驱" find.pl" - 因此File :: Find仍然使用的所有包变量。出于某种原因," top"变量留在记录不佳的状态。

当调用find(\&wanted, @directories_to_search)时,模块会将$File::Find::topdir设置为@directories_to_search中的每个目录。其他top *变量与那个"顶级"的属性有关。 。目录