que realmente debería saber esto, pero he trabajado principalmente con Linux, Mac OS X y Windows, que todo el uso de la barra diagonal (/
) como separador de directorio (Windows pueden usar ya sea \
o /
.) .Perl Handling Directorio Separadores
Eso significa que cuando normalmente escribo programas en Perl, simplemente puedo usar /
como el separador de directorios y todo está bien. Sin embargo, sé que File::Spec
se supone que permite la portabilidad de los separadores de archivos (lo que sea que eso signifique).
Si estoy en un sistema que no usa barras diagonales como separador de directorios, entiendo que los usuarios esperan poder ingresar archivos con los separadores predeterminados y ver la salida con los separadores predeterminados. (Por ejemplo, un usuario de Windows ingresará y espera que la salida sea C:\Users\smith\Documents
y no C:/Users/smith/Documents
), pero ¿qué hace Perl internamente?
¿Puedo, a pesar de lo que la plataforma puede utilizar como separador de directorio, basta con utilizar barras diagonales cuando estoy tratando con archivos internamente. Por ejemplo, tengo un directorio $dir
y un archivo llamado $file
, y quiero abrir el archivo. ¿Puedo simplemente decir $dir/file
, o tengo que usar File::Spec
para obtener el nombre para mí?
De hecho, ¿los programas Perl requieren barras diagonales en los nombres de directorios? Estoy escribiendo un módulo y entregaré los nombres de los archivos al programa de llamadas. ¿Debo dar el archivo como /foo/bar/fubar
o si el sistema usa dos puntos como el sistema operativo Macintosh anterior, diga :foo:bar:fubar
?
¿Qué vas a hacer con los caminos? Si es para leer y escribir en archivos, entonces '/' está bien, y perl hará lo que usted quiera decir. Si está elaborando comandos para ser analizados por el shell de comandos de la computadora host o por otros programas en ese sistema, entonces deberá obedecer las reglas para esa plataforma, y File :: Spec puede ayudar. –