<?xml version="1.0" encoding="utf8"?>
<!DOCTYPE html
	PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<HTML>
<HEAD>
   <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=uft8">
   <META NAME="DATE" CONTENT="11/2/2003">
   <META NAME="Author" CONTENT="J. J. Merelo">
   <META NAME="Description" CONTENT="Tutorial de PERL en castellano, con ejemplos y ejercicios">
   <META NAME="Keywords" CONTENT="curso de perl, tutorial de perl, manual de perl, programacion"> 
   <TITLE>Tutorial de Perl:  Preguntas frecuentemente preguntadas  </TITLE>
<script language="JavaScript">
var contador = 1;
var contadores= new Array;
function multicontador(  numero ) {
      if ( ! contadores[ numero ]  )
          contadores[ numero ] = 1;
      else
          contadores[numero ]++;
      document.write( contadores[numero] );
};

</script>
<link rel ='stylesheet' type = "text/css" href = "perl.css">
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#ffffff" LINK="#0000FF" VLINK="#551A8B" ALINK="#FF0000">
<TABLE  align=center cellpadding=5 bgcolor='darkseagreen'>
	<tr>

	<td>
			 <!-- Atomz.com Search HTML for Tutorial de PERL en castellano -->
	  <form method="get" action="http://search.atomz.com/search/">
	    <input size=25 name="sp-q"><br /><input type=submit value="Busca en el tutorial">
	    <input type=hidden name="sp-a" value="0002147b-sp00000001">
	  </form>
	</td>

	<td align='center'>
			<h1><a href='indice.html'>Tutorial de <strong>PERL</strong> en castellano </a>: Preguntas frecuentemente preguntadas</h1>
	</td>

    <td align='right' valign='top'><a href='tutoperl17.html'> Bibliograf&iacute;a.</a><br><a href='tutoperl18.html'> Recursos Internet</a><br><a href='tutoperl0.html'>  &iquest;Qu&eacute; es?</a><br></td>
	</tr>
</table>

<h3>Preguntas que suelen enviar por correo electrónico, y que suelo contestar.</h3>



<dl>
<dt><em>¿Cómo se pueden hacer CGIs en <strong>PERL</strong>?¿Qué
diferencia hay entre CGI y <strong>PERL</strong>?</em>
<dd>CGI no es un lenguaje, es una forma de escribir programas que se
pueden escribir en cualquier lenguaje; en especial, se pueden escribir 
en  <strong>PERL</strong>; que está especialmente diseñado para
ello. Escribir un CGI en  <strong>PERL</strong> es tan simple como
esto:<pre><code>
print "Content-type: text/html\n\n";
print "Hola";
</code></pre>. 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:<pre><code>
use CGI;
print header, start_html, title('titulo'),end_html;
</code></pre> que usa el módulo estándar CGI.pm, que sirve
precisamente para escribir CGIs. Más información, escribiendo
<code>perldoc CGI</code>
</dd><br><br>
<dt><em>¿Cómo se puede acceder a una base de datos en <strong>PERL</strong>?¿Qué
bases de datos puedo usar?</em>
<dd>Lo más fácil es usar el módulo DBI (que, como todos los demás,
está en el <a href=http://www.cpan.org>CPAN</a>), 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
<code>Win32::ODBC</code>. 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.
</dd><br><br>

<dt><em>Tengo este error en un programa en <strong>PERL</STRONG>. 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?</em>
<dd>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 <strong>PERL</strong>, tal como <a href=
http://www.egroups.com/group/perl-es>PERL-ES</a>; seguro que habrá gente 
encantada de ayudaros.
</dd><br><br>

<dt><em>¿Funcionan exactamente igual los programas
<strong>PERL</STRONG> en Windows y en Unix?</em>
<dd>En general, sí. En particular, hay algunas cosas que no funcionan
de la misma forma: por ejemplo, la orden <code>fork</code> 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
<code>$OSNAME, $^O </code> o  <code>$Config{osname} </code>. Por
ejemplo, se puede hacer algo así: <pre><code>
if ( $^O eq 'linux' ) {
    [código específico para Linux];
} else {
    [código para otros SOs menos afortunados];
}
</code></pre></dd><br><br>

<dt><em>¿Existe algún sitio web, preferentemente gratuito, donde se puedan
poner scripts en <strong>PERL</strong>?</em></dt>
<dd>Existen varios: <a
		       href='http://ldbreg.lycos.com/cgi-bin/mayaSales?m_CBURL=http://www.lycos.com/&m_PR=26'>Lycos</a>, por ejemplo, deja poner CGIs y PHP; si tienes algún proyecto en <a href='http://www.sf.net'>SourceForge</a>, 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. </dd><br><br>

<dt><em>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 </em>
<dd> 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, <a href='http://merelo.net/tutoperl'>este</a>; 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<pre>
JJ Merelo
Depto. Arquitectura y Tecnología de Computadores
ETS Ingeniería Informática
C/ Daniel Saucedo Aranda, s/n
18071 Granada (España)
</pre>
Todo esto, por supuesto, afecta también a cualquier parte del tutorial 
o a los ejemplos que se incluyen con el mismo.
</dl>



<TABLE  align=center cellpadding=5 bgcolor='darkseagreen'><tr><td>[<a href='tutoperl17.html'> Bibliograf&iacute;a.</a>] [<a href='tutoperl18.html'> Recursos Internet</a>] [<a href='tutoperl0.html'>  &iquest;Qu&eacute; es?</a>] </td></tr></table>

</BODY>
</HTML>
