• Publicidad

Módulo LWP o programar uno propio

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

Módulo LWP o programar uno propio

Notapor Santi » 2006-04-10 18:29 @812

Buenas,

Estoy programando un script que se ejecutará en sistemas operativos variados (diferentes sabores de Linux, *BSD, etc...) recién instalados, es decir, tendrán una instalación mínima de Perl.

Este script, entre otras cosas, se conectará a un servidor web vía HTTP para descargar un simple fichero de texto, utilizando autentificación básica (par usuario/contraseña).

Por ahora estoy utilizando el módulo LWP y funciona perfectamente, pero quisiera prescindir de él, ya que en los recién instalados servidores este módulo no está instalado, generalmente...

Sé que existe la posibilidad de utilizar módulos sin instalarlos (ver: Usar módulos de Perl sin instalar), pero este método requiere la descarga del script y de al menos este módulo. No lo he probado pero creo que podría tener problemas entre diferentes versiones y es algo que quiero evitar, me gustaría que fuera limpio y fiable :-)

¿En una instalación básica de Perl existe alguna forma sencilla de descargar ese fichero vía HTTP con autenticación de usuario/contraseña, sin tener que programarlo todo o utilizar alguno módulo adicional? ¿Qué otras formas se os ocurren para hacerlo desde Perl? Queda también casi descartado el uso de comando externos, como "lynx", "wget", etc... por la misma razón, puede que no estén instalados con una instalación mínima del sistema operativo.

¡Saludos y muchas gracias!
Santi Saez
Santi
Perlero nuevo
Perlero nuevo
 
Mensajes: 13
Registrado: 2006-04-07 08:56 @414

Publicidad

Re: Módulo LWP o programar uno propio

Notapor explorer » 2006-04-11 06:02 @293

Yo intentaría siempre instalar el paquete LWP. Creo que viene de base ya en las últimas distribuciones Perl.

De todas formas, nada impide que mires el código que usa LWP para ver 'cómo lo hace'.

Por ejemplo, en LWP/Protocol/http.pm tiene todos los pasos para dialogar por HTTP. Leyéndolo con calma ves que requiere el módulo Net::HTTP, que a su vez va requiriendo otros módulos hasta llegar al módulo Socket.

Es decir, que sí que puedes programarlo todo desde cero, pero vas a dedicarle un tiempo a conseguirlo. Y ese tiempo es lo que te van a ahorrar estos módulos.

Otra cosa buena es que puedes decidir el nivel a partir del cual vas a hacer tu aplicación. Desde alto nivel como LWP, medio con Net::HTTP o bajo con Socket.

Aqui tienes la compatibilidad del paquete LWP con algunos sistemas operativos (97 versiones).

Una cosa clara que tenemos todos en cuestión de portabilidad es el concepto de 'pure Perl', que quiere decir que los módulos más compatibles son los que no necesitan de librerías externas -vamos, que están hechos completamente en Perl-. LWP pertenece a este tipo, porque al final depende del módulo Socket.
Última edición por explorer el 2006-04-11 10:25 @476, editado 1 vez en total
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

Notapor kidd » 2006-04-11 10:07 @463

Sí, coincido con explorer, creo que podrías poner el módulo dentro de tus propias librerías, de esa manera no te tienes que preocupar con que en el sistema donde estás haciendo la instalación cuente con él o incluso con la versión que quieres usar.

Saludos
Uriel Lizama Perl programmer fundador de Perl en Español
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México

Notapor creating021 » 2006-04-13 11:47 @533

Bueno, en System V ( SunOS 2.X ) los sockets no te van a funcionar por su arquitectura, y creo que hay implementaciones para esto.
En BeOS, ni lo sueñes, tendrías que programar el .XS para bone de R5.

Tienes dos conexiones a libsocket Socket e IO::Socket (que a su vez llama a Socket) y otras más (IO::Socket::INET... ) para trabajos más específicos.

Podes hacer un directorio con los módulos de LWP que requiera tu programa para descargar el archivo y usarlos sin instalar o hacerlo con Socket (esto implica saber el RFC) que como dicen los demás, te tomará más tiempo.
Expect the worst, is it the least you can do?
Avatar de Usuario
creating021
Perlero frecuente
Perlero frecuente
 
Mensajes: 595
Registrado: 2006-02-23 16:17 @720
Ubicación: Frente al monitor


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado