5a sessió: Programació PERL.

Qualsevol script escrit en PERL ha de començar amb les línies:
#!/usr/bin/perl
print"content-type:text/html\n\n";
El caràcter # indica un comentari en PERL. Però aquesta primera línia és un comentari PERL que interpreta el sistema operatiu: indica l'intérpret que sap executar el sript i la seva ubicació. Cal incloure aquesta línia a qualsevol programa al servidor per poder executar-lo, i tal com figura a l'exemple: a la primera línia i sense cap espai adicional. Si no, no funcionarà.

La segona línia indica al servidor web que tota la sortida l'ha d'interpretar com codi HTML. És una línia típica de scripts CGI, programes que s'executen a través d'Internet. Sense aquesta línia el programa podria funcionar si l'executesim des d'un terminal del servidor, però mai funcionaria si l'executesim a través del servidor web.

A partir d'aquí comença el programa de veritat. Veiem un exemple senzill, on calculem i mostrem el quadrat dels primers 10 números naturals:

#!/usr/bin/perl
print "content-type:text/html\n\n";
print "<h1>C&agrave;lcul de quadrats</h1>";
for ($i=1;$i<=10;$i++)
{
  $quadrat=$i*$i;
  print "El quadrat de $i &eacute;s $quadrat<br>";
  }
Com veieu, hem de crear la pàgina web com la sortida per defecte (ordre print) del programa. Per això cal utilitzar els codis típics HTML: &eacute;, <br>, ...

Compte amb les cometes. En PERL existeixen tres tipus de cometes:

Per altra banda fixeu-vos com les variables comencen amb el caràcter $. En realitat, només les variables escalar utilitzen aquest prefix. En PERL existeixen tres tipus de variables: Veiem un exemple complert:
#!/usr/bin/perl
print "content-type:text/html\n\n";
$anysingrid = 2;
$cumple = $anysingrid+1;
$dona = "Isabel";
@germans = ( "Juan", "Jose Lu&iacute;s", "Amalia", "Rafael", "Joaqu&iacute;n");
%besnebots = ( "Cristina", "Aniol", "Maria Elena", "Marc");

print "<h1>La meva familia</h1>";
print 'Els meus pares es diuen Juan i Amalia<br>';
print "La meva dona es diu $dona<br>";
print "La meva filla Ingrid cumplir&agrave; $cumple anys<br>";
print "Els meus germans es diuen ";
foreach (@germans)
{
  print "$_, ";
  }
@nebotsm=keys (%besnebots);
print "<br>Els meus besnebots s&oacute;n :<br>";
foreach (@nebotsm)
{
  print "$besnebots{$_} (fill de $_) <br> ";
  }

La instrucció foreach serveix per accedir a tots els elements d'una llista. Cada element és accessible dintre del bucle amb la variable reservada $_. Aquesta variable és una de les més importants de PERL: és comparable al registre acumulador d'una CPU. Moltes instruccions utilitzen aquesta variable per defecte (de fet, print sense argument escriu el contingut d'aquesta variable. L'ús d'aquestes variables implícites donen a PERL la seva potència (reducció del codi), a la vegada que limiten la lectura del codi per als usuaris novels. Per altra banda, la funció keys retorna una llista amb las claus d'una llista associativa.

Podem enviar al servidor aquests arxius, ficant-los dintre del directori cgi-bin del nostre espai web. Cal canviar els permisos d'execució: rwxr-xr-x. Atenció: la tranferència s'ha de fer en mode ASCII, ja que MS-DOS i UNIX fan servir diferent conveni per al canvi de línia. Podem obligar al LeechFTP a fer aquesta traducció de codis configurant l'extensió .cgi com transferència ASCII a Fitxer/Opcions:


 
 

© Jordi Orts, març 2001