Hasa dónde sé es un lenguaje de programación multiuso, yo aquí lo utilizo
exclusivamente para la creación de scripts, pero su potencia va mucho más allá
(de la mano de su complejidad).
Bueno, pues mi interés por él deriva de la posibilidad de crear o editar
archivos en el servidor donde esté instalado.
Por ejemplo, lo que con scripst en Java solo sé trabajar con cookies
almacenadas en el PC del visitante de mi página y por tanto, susceptibles a ser
eliminados por el propio usuario: Con Perl veo como se puede mantener almacenado
en el servidor.
Los ejemplos que figuran en esta página dan una idea de cómo hacerlo, y
además son 100% operativos.
Posibilidades prácticas :
Mantener el tu sitio web una base de datos de los visitantes de tus
páginas, sus gustos (obtenidos vía formulario), etc.
Mostrar dicha información como documento HTML si se desea.
Crear páginas dinámicas, que se vayan haciéndose a sí mismas con las
entradas de los usuarios que la visiten.
El que tengo en Linux, es el que venía en el paquete de mi distribución SuSE
7.1 Professional (que me regalaron). :)
Desde 2003 utilizo Debian Linux y soy feliz.
Ejecutar PERL:
Bueno, este ha sido mi mayor problema.
Si simplemente quieres programar en Windows, a nivel local, ejecutándolo
desde la línea de comandos va de cine.
Sin embargo yo quería hacer correr los programas vía navegador (ver bibliografía).
Por lo menos yo no conseguí que mi Windows Explorer le diese soporte a un
intérprete de PERL.
Entonces, para poder jugar, tuve que darme de alta en un servidor con PERL (
http://www.tripod.com/ ), descargar allí
páginas y códigos y probarlos conectado.
Es un método incómodo que me hizo abandonarlo, hasta que he tenido tiempo de
investigar un poquito ;)
Que sepas que lo he resuelto; la clave :
Linux y el servidor Apache. Ya puedo hacerlo todo en mi ordenador, sin
conexión, probarlo y descargarlo cuando me apetezca.
Si estás interesado/a, te ayudo.
Ejemplos:
prueba.cgi :
Si al ejecutarlo te aparece la fecha, es que tu servidor soporta PERL. Así
será más fácil. ;)
readarticle.cgi
: Lee un fichero de texto situado en el servidor y muestra en la página del
navegador.
ent_var.cgi
: Muestra variables de entorno, esto es, informaciones que le pasa nuestro
navegador al servidor web. Es una pirateada (no, hombre, no, que es código
libre) de un ejercicio del libro Guía Esencial PERL5.
registro.cgi : Lee los datos de un
formulario y los mete en un archivo en formato html. Luego te muestra un
listado de vínculos a los ficheros creados. También es un ejercicio del
libro Guía Esencial PERL5. Lo he limitado a 5 ficheros para no saturarme
(ufff!). No sé aún como borrarlos (no sé que
me pasa con ulink) así que utilizo un directorio para "basura".
clave.cgi : Acceso restringido por
clave. Lo que hace es dar acceso a un fichero o a otro en función de quien sea
el visitante de la página. Bueno, si te conozco, prueba con tu nombre y
apellido en minúsculas. Si no, con Login = user Password = anonymous o
con otro que te inventes que no será aceptado y te llevará a la página por
defecto .Las fotos son todas de 2002 sacadas con mi cámara.
nueva_cita.cgi : Tenemos un archivo con
una serie de citas que mostraré de forma aleatoria cada vez que se abra la
página principal. Este CGI permite añadir nuevas citas, siempre y cuando el
usuario esté dado de alta para este servicio. Prueba con Login = root Clave =
toor
HTLMdinamico.cgi : Muestra una de las
citas del archivo anterior de forma aleatoria cada vez que se abre o relee
esta página. Lo hace en la celda situada debajo de esta descripción. Bueno, pues parece que al fin veo una limitación al sitio
tripod. En mi ordenador con servidor APACHE, el código funciona (¡Diablos, que
lo he hecho yo!) si doy al fichero HTML atributo de ejecutable, pero tripod en
cuanto recibe un archivo le quita este atributo (incluso a los CGIs), y su
servidor FTP no acepta el comando CHMOD. He probado a dejar el HTML en el
directorio de los CGIs, porque veo que estos se ejecutan bien, pero .... Se me
ocurren ideas un poco retorcidas de solucionarlo, pero no me parecen
"rentables". Si alguien sabe como solucionar este problema o de otro sitio que
soporte la llamada :
<!--#exec cgi="ruta del
fichero/nombre del fichero.cgi"-->
y me lo dice, le invito a una cerveza, café o similares (no, no tiene porqué
contener ningún tipo de droga).
[an error occurred while processing this
directive]
intermediario.cgi
: Hace cualquier cosa para la que esté programado y después
muestra la página que el usuario deseaba ver cuando hizo click sobre este
vínculo. ¿Utilidades?
Anteponer un contador de accesos a cada página. Por ejemplo, el acceso
a kaos.html pasa por este filtro. Fíjate si no en la dirección URL que
aparece en tu navegador cuando accedes a ella, ves ese final con
?kaos.
Resolver de forma chapucera el problema anterior. La página que verás al hacer click sobre el vínculo será
esta misma mostrada por el CGI, que cuando encuentre la cadena
"PAGINA_FANTASMA" la sustituirá por el resultado de HTMLdinamico
CGI. ¿Una chapuza verdad?, pero funciona hasta que me ayudes con una
solución mejor ;).
Como mediante la llamada por href, se permite la transferencia de
parámetros, personalizar la web destino, pasándole el login del usuario
actual.
Etc, etc
Problemas :
Que si ejecuto este programa, no me funciona el programa anterior
:)
Que TRIPOD no me deja manipular ficheros con el CGI si no están en
su mismo directorio. Por lo que tengo que pasar una copia de
IndicePERL.html para que funcione el ejemplo a /cgi-bin/. ¿Se puede evitar
esto?
PAGINA FANTASMA
intermediariogenerico.cgi : El caso
anterior es demasiado particular. En este tengo un CGI genérico, que puede
sustituir a las llamadas a los documentos HTML. Se le llama pasándole el
nombre sin extensión del archivo HTML en cuestión y a partir de ahí hace lo
siguiente :
Abre para añadir o crea si no existiera, un fichero con el nombre pasado
como parámetro y la extensión "txt", incorporándole una línea con la
información del día en que se está accediendo, navegador y su versión y
dirección IP desde la que se accede.
Muestra el documento HTML, redireccionando correctamente bitmaps y
vínculos locales.
Para ejecutar este script, basta con que vuelvas a la página
principal lmsaizarroba.tripd.com
y entres en la página "kaos" (de recomendada lectura y que te
invito a que me ayudes a ampliar). Fíjate en la dirección URL que aparece en
tu navegador cuando accedes a ella, como observarás no aparece una dirección
de un documento html, si no ....
/cgi-bin/intermediariogenerico.cgi?kaos . O sea, que estás llamando a
un CGI al que le pasas "kaos" como argumento. Y a partir de ahí
has generado una nueva línea en el fichero ..../cgi-bin/kaos.txt .
Puedes abrirlo sin más que poner esta dirección en tu navegador. Hacer
un contador a partir de ahí es inmediato (¡sí, piensa un poquito!). Aunque
lo ideal es que funcione <--!#exec cgi ....
Futuro1 : Tiempo al tiempo.
Futuro2 : ¿Llegaremos?.
Bibliografía :
Guía Esencial PERL5 :
Editorial : Pretince Hall
Podéis comprarlo o , como hice yo, pedírselo a una amiga :)
Si crees que te sirven de algo los códigos de estas páginas, sólo tienes
que pedírmelos, te los mando por e-mail, porque no sé si te puedes descargar
los CGIs directamente visitando cada página. lmsaizarroba@yahoo.es
¡Ayúdame a saber!
Como no me funciona la sentencia
en mi sitio TRIPOD <!--#exec cgi="ruta del fichero/nombre del
fichero.cgi"-->, ¿hay alguna otra alternativa? . Lo que quiero
es que se ejecute un cgi cada vez que la página se abre o relee.
Lo mismo para mi problema de que no puedo manipular (¡Ni leer!) ficheros
del directorio padre. En mi local Apache va de cine.
Necesito saber si se puede acceder sin problemas a mi servidor. Para
ello sería necesario que mientras yo esté conectado y sepa mi dirección IP,
un alma caritativa entrase y me dijese si funciona. No, no tengo dos líneas
telefónicas ni sé como hacerlo yo solito. A nivel local simplemente pongo la
URL http://localhost/ , no sé si para verme desde el exterior sería algo
similar a http://número de IP local.
Agradecería cualquier sugerencia comentario sobre la página, eso sí,
abtenerse amigos de la estética. lmsaizarroba@yahoo.es
Agradecimientos
A tí por visitarnos.
A Eva por el "préstamo" de los libros de PERL y JAVASCRIPT. No, los que
compréis en las tiendas no serán los mismos, estos están personalizados
(comentados y corregidos).
A Toni por la licencia de Linux.
A Iñigo por el scáner.
A mamá por el café. Lo siento, pero el té como que no. A todo caso
chimarrao.
A Fredi por su "motivación inversa".
A The Beautiful South , por Quench.
A Linus Torvals como padre fundador y a todas las personas que han
ayudado y ayudan a mejorar y difundir Linux y sus aplicaciones GPL. Gracias,
gracias, gracias. ¡Ahí hay ilusión!
A la gente que disponibiliza manuales y recursos gratuitos en la red. No
me digáis que mostrar lo que sabes no es una forma de altruísmo.
A Jim Henson y todos los personajes de Barrio Sésamo. En especial a
Triqui, Coco y Gustavo, por que sus lecciones son la base de toda
posibilidad de conocimiento.
A las vacaciones de Agosto de 2002, por permitirme jugar un poco con
esto (en lugar de invertir todo ese tiempo en esa perniciosa actividad que
es darle vueltas a la cabeza).