• Publicidad

[RESUELTO]Varias dudas de novato

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Re: [RESUELTO]Varias dudas de novato

Notapor explorer » 2010-11-25 16:48 @741

A ver... no sé a qué te refieres con lo de la ruta relativa... Lo importante es el concepto de "directorio de trabajo" o "directorio actual", que no tiene por qué ser igual al "directorio del programa" ni igual al "directorio de ejecución".

Ejemplo:
* Un programa Perl, programa.pl, que queremos ejecutar, está en /usr/local/bin
* Nosotros estamos en /home/usuario

Si ejecuto el programa como /usr/local/bin/programa.pl, su directorio de trabajo será desde lo estoy invocando: /home/usuario, por lo que todas las rutas relativas dentro de él serán con respecto a ese directorio.

Puedo incluso ejecutarlo con un cambio temporal de directorio: $(cd /otro/directorio; /usr/local/bin/programa.pl)

En este caso, el programa se estará ejecutando en /otro/directorio, pero al terminar esta orden seguiremos estando en nuestro directorio /home/usuario.

Por eso, cuando hacemos un programa que depende de posiciones fijas de otros ficheros, lo normal es hacer una de estas dos cosas (pero no excluyentes entre sí):

* hacer un chdir() al principio del programa, para que su directorio de trabajo sea aquel en que nos interesa que encuentre a los ficheros. Aquí sí que podemos usar rutas relativas.

* la indicación a los ficheros, por medio de rutas absolutas.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Publicidad

Re: [RESUELTO]Varias dudas de novato

Notapor gerkrt » 2010-11-25 20:32 @897

Mmm. Entendida la teoría. El problema es que quiero cargar una serie de archivos o acceder a carpetas que estén en la misma carpeta que el archivo .pl.

¿Hay forma de hacerlo sin tener que modificar el script manualmente cada vez u obligarlo a ponerlo en una localización conocida?

Veo que el chdir() te permite cambiar el directorio, pero me falta saber cuál es el directorio donde está el archivo pl ejecutado para pasárselo como argumento.
gerkrt
Perlero nuevo
Perlero nuevo
 
Mensajes: 33
Registrado: 2010-11-22 21:43 @946

Re: [RESUELTO]Varias dudas de novato

Notapor gerkrt » 2010-11-25 20:34 @898

Mmm. Entendida la teoría. El problema es que quiero cargar una serie de archivos o acceder a carpetas que estén en la misma carpeta que el archivo .pl.

¿Hay forma de hacerlo sin tener que modificar el script manualmente cada vez u obligarlo a ponerlo en una localización conocida?

Veo que el chdir() te permite cambiar el directorio, pero me falta saber cuál es el directorio donde está el archivo .pl ejecutado para pasárselo como argumento.
gerkrt
Perlero nuevo
Perlero nuevo
 
Mensajes: 33
Registrado: 2010-11-22 21:43 @946

Re: [RESUELTO]Varias dudas de novato

Notapor explorer » 2010-11-25 20:43 @904

Usa el módulo FindBin.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Anterior

Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 39 invitados

cron