2010-04-02 16 views

Respuesta

9

Si tiene un nombre de ruta, puede usar la función dirname de File::Basename.

use File::Basename; 
my $directory = dirname($path); 

¿Qué es lo que tiene como entrada?

+0

solo un nombre de archivo sin barras diagonales iniciales o posteriores – Zerobu

+1

¿qué quiere decir con "solo un nombre de archivo"? – ysth

+0

@Zerobu: Entonces, es una ruta relativa. 'dirname' le dará lo que quiera, con la posible excepción de los archivos en el directorio actual: mire la documentación y compruébelo usted mismo. – Cascabel

0

Puede utilizar el método más brillante de brian anterior y si el $directory eq "." luego reemplace "." con su directorio actual de trabajo.

+0

También puede usar File :: Spec para convertir las rutas relativas en rutas absolutas y limpiar varios problemas// y//. –

Cuestiones relacionadas