• Publicidad

Carga condicional de módulo bajo MINGW64/MSYS

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

Re: Carga condicional de módulo bajo MINGW64/MSYS

Notapor pablgonz » 2020-06-12 09:08 @422

explorer escribiste:Puedes incluir directorios de búsqueda de paquetes (o sea, modificar el contenido de @INC) por medio de

use lib 'ruta';

Genial, creo que me complicaré un poco las cosas, algunos ordenadores tienen Strawberry y ActivePerl. Ese módulo en específico siempre está instalado en ambas distribuciones (por defecto) y lo uso para buscar la ruta de un programa instalado por medio del registro de Windows. Miraré las rutas para ver qué tienen en común y trataré de adaptar algo.

explorer escribiste:El eval() tiene dos formas de funcionar. Si se le pasa una cadena (con comillas) la expresión que hay dentro se evalúa y se ejecuta cada vez que el procesador pase por esa línea.

En cambio, si a eval le pasamos un bloque (con las llaves), el contenido es interpretado una sola vez (al mismo tiempo que la línea que lo contiene es interpretada), y luego ejecutada cuando el procesador llegue allí.

La ventaja de esta segunda solución es clara: se detectan errores sintácticos en tiempo de compilación, y solo se interpreta una vez, con lo que es más rápida que la primera solución.

Más información en perldoc -f eval

Error de novato: "No he leído la documentación" :(

He colocado la línea usando llaves:
Sintáxis: [ Descargar ] [ Ocultar ]
  1. eval { use Win32::TieRegistry qw|KEY_READ REG_SZ| }; 

y funciona Ok, tuve que poner use a cambio de require, este último me devolvía un error.

¿En qué se diferencia el uso de if con el uso de eval?, según lo que leí, usar:
Sintáxis: [ Descargar ] [ Ocultar ]
  1. use if $Win, "Win32::TieRegistry" => qw|KEY_READ REG_SZ|; 

es equivalente a la línea en la que uso eval, pero, esta línea no funciona.
pablgonz
Perlero nuevo
Perlero nuevo
 
Mensajes: 236
Registrado: 2010-09-08 21:03 @919
Ubicación: Concepción (Chile)

Publicidad

Anterior

Volver a Básico

¿Quién está conectado?

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

cron