Lun Abr 10, 2006 5:29 pm
|
 |
Santi
Perlero Nuevo

|
Registrado: 07 Abr 2006
Mensajes: 13
|
|
| ¿Módulo LWP o programar uno propio? |
|
|
Buenas,
Estoy programando un script que se ejecutará en sistemas operatívos variados (diferentes sabores de Linux, *BSD, etc...) recien instalados, es decir, tendrán una instalación mínima de Perl.
Este script, entre otras cosas, se conectará a un servidor web via 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 el, ya que en los recien instalados servidores este módulo no está instalado generalmente..
Se 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 gustaria 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 modulo adicional? ¿Que otras formas se os ocurren para hacerlo desde Perl? Queda tambien casi descartado el uso de comando externos, como "lynx", "wget", etc.. por la misma razón, puede que no esten instalado con una instalación mínima del Sistema Operatívo..
Saludos y muchas gracias! |
|
|
|

Mar Abr 11, 2006 5:02 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4128
Ubicación: Valladolid, España
|
|
|
|
|
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. Leyendolo 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.
Ultima edición por explorer el Mar Abr 11, 2006 9:25 am, editado 1 vez |
|

Mar Abr 11, 2006 9:07 am
|
 |
kidd
Creador de Perl en Español

|
Registrado: 15 Oct 2003
Mensajes: 1389
Ubicación: México
|
|
|
|
|
Si, 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 |
|

Jue Abr 13, 2006 10:47 am
|
 |
creating021
Vive para Perl en Español

|
Registrado: 23 Feb 2006
Mensajes: 486
Ubicación: Frente al monitor
|
|
|
|
|
Bueno, en System V ( SunOS 2.X ) los sockets no te van ha funcionar por su arquitectura, y creo que hay implementaciones para esto.
En BeOS, ni lo sueñes, tendrias que programar el .XS para bone de R5.
Tines dos conecciones a libsocket Socket e IO::Socket (que a su vez llama a Socket) y otras mas (IO::Socket::INET... ) para tebajos mas especificos.
Podes hacer un directorio con los modulos de LWP que requiera tu programa para descargar el eachivo y usarlos sin instalar o hacerlo con Socket (esto implica saber el RFC) que como dicen los demas, te tomara mas tiempo. |
|
Powered by phpBB © 2001, 2005 phpBB Group
|