opendir MYDIR, "$dir";
my @FILES = readdir MYDIR;
closedir MYDIR;
Parece que el 99,9% de las veces las dos primeras entradas de la matriz son siempre “” y “..”. La lógica posterior en el script tiene problemas si no es verdad. Me encontré con un caso donde las entradas del directorio aparecieron más tarde. ¿Esto es indicativo de que el sistema de archivos está dañado o algo más? ¿Hay un orden conocido de lo que vuelve a operar?En caso de que el opendir de Perl siempre regrese. y ... primero?
¿Cómo se eliminarían exactamente? ¿Puedes describir una de esas secuencias antinaturales? – ojblass
Creo que quiere decir que algo tiene que salir mal, ya que normalmente se previene. Si un fsck lo arregla, eso implica corrupción para mí. Una instancia en la que puedo imaginar dónde podría ocurrir esto es dónde se elimina o se pierde un directorio padre, y sus contenidos no fueron (corrupción o operación fallida). Si fue restaurado en un fsck, eso resultaría en una colocación posterior de ".." en sus subdirectorios, me imagino. – kbenson
Hay sistemas de archivos que no almacenan entradas de directorio en una lista ordenada, y que no devuelven '.' y' ..' en ninguna posición particular bajo operación normal. Por ejemplo, ext3/ext4 con B-trees habilitado, que se usa en las instalaciones Linux más recientes. – Gilles