Tutorial de PERL en castellano : Preguntas frecuentemente preguntadas

Bibliografía.
Recursos Internet
¿Qué es?

Preguntas que suelen enviar por correo electrónico, y que suelo contestar.

¿Cómo se pueden hacer CGIs en PERL?¿Qué diferencia hay entre CGI y PERL?
CGI no es un lenguaje, es una forma de escribir programas que se pueden escribir en cualquier lenguaje; en especial, se pueden escribir en PERL; que está especialmente diseñado para ello. Escribir un CGI en PERL es tan simple como esto:

print "Content-type: text/html\n\n";
print "Hola";
. Por supuesto, habrá que colocarlo en la zona correspondiente del servidor para que sea accesible como CGI. Otra forma, a partir de la versión 5, es:

use CGI;
print header, start_html, title('titulo'),end_html;
que usa el módulo estándar CGI.pm, que sirve precisamente para escribir CGIs. Más información, escribiendo perldoc CGI


¿Cómo se puede acceder a una base de datos en PERL?¿Qué bases de datos puedo usar?
Lo más fácil es usar el módulo DBI (que, como todos los demás, está en el CPAN), con un driver específico para el gestor de bases de datos, o si hay ninguno específico, y la BD está accesible usando ODBC, pues con ODBC. En WinXX hay un módulo alternativo, específico para ODBC, denominado Win32::ODBC. Con cualquiera de estos dos módulos, se puede usar con cualquier SGBD; en Linux/Unix, se puede usar con MySQL o MiniSQL, o Postgres; y en Windows se puede usar con Microsoft SQL server combinado con ODBC. Eso sí, como es inherente a las conexiones ODBC, es más bien tirando a lento.


Tengo este error en un programa en PERL. Por favor, ¿puedes echarle un vistazo a ver qué le pasa? O, una variación de la anterior: por favor, ¿puedes mandarme un programa que haga tal cosa?
Pues generalmente, no. Bastante tengo con hallar los errores de mi código, para ponerme a hallar los errores ajenos. Y en cuanto a la segunda, si lo tuviera y quisiera darlo, estaría entre los ejemplos, y si no está, en fin, hay gente que se gana la vida programando el PERL, echadles una mano... Ojo, esto no significa que no podáis preguntarme dudas, estoy encantado de contestarlas. Pero no corregir programas ajenos, o hacer programas para alguien (aunque por un módico precio, podemos llegar a un acuerdo). En estos casos, lo mejor es que escribáis a alguna lista de correo que trate de PERL, tal como PERL-ES; seguro que habrá gente encantada de ayudaros.


¿Funcionan exactamente igual los programas PERL en Windows y en Unix?
En general, sí. En particular, hay algunas cosas que no funcionan de la misma forma: por ejemplo, la orden fork no funciona (salvo en la nueva versión 5.6), el acceso a base de datos no se hace igual (se usa el módulo DBD/DBI en Linux y en Windows, generalmente, el Win32::ODBC, aunque también se puede usar el mismo); para ejecutar un programa en PERL hay que definir una serie de cosas. Pero en general, cualquier programa que no use ninguna característica específica de un sistema operativo funciona exactamente igual en los dos sistemas operativos. Y si hay alguna duda, se puede insertar código particular detectando el valor de la variable $OSNAME, $^O o $Config{osname} . Por ejemplo, se puede hacer algo así:

if ( $^O eq 'linux' ) {
    [código específico para Linux];
} else {
    [código para otros SOs menos afortunados];
}


¿Existe algún sitio web, preferentemente gratuito, donde se puedan poner scripts en PERL?
Existen varios: Lycos, por ejemplo, deja poner CGIs y PHP; si tienes algún proyecto en SourceForge, puedes poner también CGIs, aunque la versión de Perl está anticuada. La mayoría de los hosting comerciales permiten poner Perl sin problemas.


Oye, qué tutorial más chachipiruli tienes. ¿Puedo copiarlo a mi sitio web, o incluirlo en un CD que voy a repartir, o que voy a vender? En resumen: temas de licencia y copyright
La respuesta corta es vale, si y no; la respuesta larga es que, en general, este tutorial se puede copiar sin problemas, siempre que lo dejes como está y pongas un enlace a su sitio original, este; lo mismo sirve para cachos del tutorial, o los ejemplos. En cuanto a los CDs, si los CDs son de algún modo comerciales, es decir, se venden a un precio que supone ganancia para el que los vende, no, no hay permiso; si los CDs son sin ánimo de lucro, gratuitos, parte de un curso, o incluidos junto con otras muchas cosas en una revista, sí, si hay permiso, siempre que se incluya tal cual, y se me mande una copia (inclusive revista, si fuese así) a
JJ Merelo
Depto. Arquitectura y Tecnología de Computadores
ETS Ingeniería Informática
C/ Daniel Saucedo Aranda, s/n
18071 Granada (España)
Todo esto, por supuesto, afecta también a cualquier parte del tutorial o a los ejemplos que se incluyen con el mismo.
[ Bibliografía.] [ Recursos Internet] [ ¿Qué es?]