Per qualche motivo Perl mantiene la memorizzazione nella cache le voci di directory che sto cercando di leggere con readdir:Perché le voci della directory della cache readdir() di Perl?
opendir(SNIPPETS, $dir_snippets); # or die...
while (my $snippet = readdir(SNIPPETS))
{ print ">>>".$snippet."\n"; }
closedir(SNIPPETS);
Dal momento che la mia directory contiene due file, test.pl e test.man, mi aspetto il seguente output:
.
..
test.pl
test.man
Purtroppo Perl restituisce un sacco di file che da allora sono scomparsi, per esempio perché ho cercato di rinominarli. Dopo mi muovo test.pl-test.yeah Perl restituirà il seguente elenco:
.
..
test.pl
test.yeah
test.man
Qual è il motivo di questo strano comportamento? La documentazione per opendir, readdir e closedir non menziona alcun tipo di meccanismo di memorizzazione nella cache. "ls -l" elenca chiaramente solo due file.
Sia 'readline' che' readdir' pre-read e cache. È la natura della bestia. – tchrist