Según perlunicode, -e
no funcionará con nombres de archivo Unicode, entonces ¿cómo puedo verificar la existencia de un nombre de archivo Unicode? En un sistema Solaris.
Respuestas
7 para la respuesta № 1En los sistemas Unix, los nombres de los archivos son simplemente una secuencia de bytes. Tienes que pasar a -e
la misma secuencia de bytes que el archivo realnombre. Hay una gran probabilidad de que sean estos bytes de la codificación del texto que se ve en utf-8. Entonces, si tiene puntos de código Unicode ("texto decodificado"), intente lo siguiente:
utf8::encode( my $fn = $decoded_text );
say -e $fn ? "exists" : "doesn"t exist";
No se olvide de anteponer el nombre del directorio si es necesario.