• Publicidad

Migración versión nueva Perl

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

Migración versión nueva Perl

Notapor silva » 2019-11-25 08:45 @406

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;
silva
Perlero nuevo
Perlero nuevo
 
Mensajes: 82
Registrado: 2011-05-24 05:59 @291

Publicidad

Re: Migración versión nueva Perl

Notapor explorer » 2019-11-25 09:04 @419

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
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

Re: Migración versión nueva Perl

Notapor silva » 2019-11-25 09:34 @440

¡Gracias!
¿Y si tuviese estos módulos de mi autoría en otra carpeta? Por ejemplo "/modulos"?

¿Cómo debería definirlos?

Gracias.
silva
Perlero nuevo
Perlero nuevo
 
Mensajes: 82
Registrado: 2011-05-24 05:59 @291

Re: Migración versión nueva Perl

Notapor explorer » 2019-11-25 13:29 @603

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.
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


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: Bing [Bot] y 1 invitado