2010-12-20 22 views
47

para ver si existe un archivo antes de usarlo, podemos utilizar:¿Cómo ver si existe un directorio o no en Perl?

if (-e "filename.cgi") 
{ 
#proceed with your code 
} 

Pero cómo indentify existe un directorio o no?

+1

Alrededor de la mitad de sus preguntas sobre Perl se refieren a temas muy básicos. Puede ahorrar algo de tiempo si lee algunos libros. [Perl 语言 入门 (] (http://oreilly.com.cn/book.php?bn=978-7-5641-0636-2), [Learning Perl ⑤] (http://oreilly.com/catalog/ 9780596520113 /) – daxim

+29

Supongo que le tomó muy poco tiempo hacer estas preguntas, y son resultados de búsqueda muy útiles. No seas un fanático del estilo de aprendizaje. –

+1

@ Adam Creo que el punto de daxim es que las preguntas perl del OP (incluida esta) son bastante básicas, por lo que leer una descripción general de perl podría ahorrar algo de tiempo en general frente a muchas preguntas específicas cuyas respuestas se encuentran fácilmente en otras formas – GreenGiant

Respuesta

85

Uso -d (full list of file tests)

if (-d "cgi-bin") { 
    # directory called cgi-bin exists 
} 
elsif (-e "cgi-bin") { 
    # cgi-bin exists but is not a directory 
} 
else { 
    # nothing called cgi-bin exists 
} 

Como nota, -e no distingue entre archivos y directorios. Para verificar si existe algo y es un archivo simple, use -f.

+3

Si está utilizando -d, entonces no necesita -e (-d devuelve falso para directorios no existentes). –

+9

@ Peter: si bien es técnicamente correcto, en el código de producción, por lo general, es mejor hacer -e seguido de -d, por lo que los mensajes de error pueden ser más específicos. Existe una diferencia entre "no existe" y "existe como un no directorio" en cuanto a la resolución del problema en la producción. – DVK

Cuestiones relacionadas