Tutorial de Perl: Preguntas frecuentemente preguntadas

¿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...


¿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];
}


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 no, si y no; la respuesta larga es que, en general, no permito que se copie este tutorial en un sitio web ajeno, salvo que ese sitio tenga acceso restringido, es decir, que no se pueda ver desde cualquier parte de la Internet, o el acceso desde cualquier otro punto de la Internet sea demasiado lento. 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
Facultad de Ciencias
Campus Fuentenueva, 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.
Anterior: Algunos consejos Principal Siguiente: Bibliografía.
Descargar el tutorial completo, en .zip y el en .tgz. También los ejemplos Tutorial completo, para imprimir
Bibliografía Enlaces
Preguntas frecuentes Contactar con el autor