Por alguna razón Perl mantiene almacenamiento en caché de las entradas de directorio que estoy tratando de leer usando readdir:¿Por qué las entradas de directorio de caché readdir() de Perl?
opendir(SNIPPETS, $dir_snippets); # or die...
while (my $snippet = readdir(SNIPPETS))
{ print ">>>".$snippet."\n"; }
closedir(SNIPPETS);
Desde mi directorio contiene dos archivos, test.pl y test.man, estoy esperando el siguiente resultado:
.
..
test.pl
test.man
Desafortunadamente Perl devuelve una gran cantidad de archivos que ya han desaparecido, por ejemplo, porque traté de cambiar el nombre de ellos. Después me muevo test.pl a test.yeah Perl devolverá la lista siguiente:
.
..
test.pl
test.yeah
test.man
¿Cuál es la razón de este comportamiento extraño? La documentación para opendir, readdir y closedir no menciona algún tipo de mecanismo de caché. "ls -l" enumera claramente solo dos archivos.
Tanto '' readline' y readdir' prelectura y caché. Es la naturaleza de la bestia. – tchrist