小编Fra*_*etz的帖子

为什么Perl的readdir()缓存目录条目?

出于某种原因Perl继续缓存我正在尝试使用readdir读取的目录条目:

opendir(SNIPPETS, $dir_snippets); # or die...
while ( my $snippet = readdir(SNIPPETS) )
 { print ">>>".$snippet."\n"; }
closedir(SNIPPETS);
Run Code Online (Sandbox Code Playgroud)

由于我的目录包含两个文件test.pltest.man,我期待以下输出:

.
..
test.pl
test.man
Run Code Online (Sandbox Code Playgroud)

不幸的是,Perl返回了许多已经消失的文件,例如因为我试图重命名它们.将test.pl移动到test.yeah后, Perl将返回以下列表:

.
..
test.pl
test.yeah
test.man
Run Code Online (Sandbox Code Playgroud)

这种奇怪行为的原因是什么?opendir,readdirclosedir的文档没有提到某种缓存机制."ls -l"清楚地只列出了两个文件.

perl file

6
推荐指数
1
解决办法
598
查看次数

标签 统计

file ×1

perl ×1