Página 1 de 1

Migración versión nueva Perl

NotaPublicado: 2019-11-25 08:45 @406
por silva
Estimados: tengo varios pl en versiones anteriores a 5.14 y quisiera actualizar mi Perl a 5.30.

El problema inicial que se me presenta en con el uso del 'use' y módulos propios: no los encuentra y residen en la misma carpeta que el pl que los usa.

¿Dónde debo colocar estos módulos para que los encuentre?

¡Gracias!

use modulo_propio1;
use modulo_propio2;

Re: Migración versión nueva Perl

NotaPublicado: 2019-11-25 09:04 @419
por explorer
En versiones recientes de Perl se ha quitado la ruta "." de la lista de directorios en los que Perl busca por los módulos. Era un tema de seguridad (evitar que un módulo fraudulento usurpase a un módulo del sistema).

La solución es sencilla: agregar "." a la lista de directorios:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use lib ".";
use modulo_propio1;
use modulo_propio2;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

Re: Migración versión nueva Perl

NotaPublicado: 2019-11-25 09:34 @440
por silva
¡Gracias!
¿Y si tuviese estos módulos de mi autoría en otra carpeta? Por ejemplo "/modulos"?

¿Cómo debería definirlos?

Gracias.

Re: Migración versión nueva Perl

NotaPublicado: 2019-11-25 13:29 @603
por explorer
Hummm... cuidado... no es lo mismo

/modulos

que

modulos/

En el primer caso estás indicando que hay una carpeta llamada "modulos" que está colgando del directorio raíz del sistema de archivos. En el segundo caso estás indicando que esa carpeta está colgando del directorio actual donde estamos trabajando.

Se lo debes indicar a "use lib", como has visto antes. Puedes hacer la prueba desde la línea de comandos. Si al ejecutar

Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
  1. perl -e 'use lib "modulos"; use modulo_propio1; 1'
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


no sale ningún error, es que es correcta la ruta que has escrito.