Introducció

La programació web amb Perl és una àrea poderosa i flexible que permet crear aplicacions web dinàmiques i interactives. Perl és conegut per la seva capacitat de processament de text i la seva facilitat per manipular dades, la qual cosa el fa ideal per a la programació web. En aquest mòdul, aprendrem a utilitzar Perl per desenvolupar aplicacions web, des de la configuració inicial fins a la creació de scripts CGI i l'ús de frameworks web.

Continguts

Configuració de l'Entorn Web

Instal·lació del Servidor Web

Per desenvolupar aplicacions web amb Perl, necessitem un servidor web. Apache és una opció popular i fàcil de configurar.

Instal·lació d'Apache a Linux

sudo apt-get update
sudo apt-get install apache2

Instal·lació d'Apache a macOS

brew install httpd

Instal·lació d'Apache a Windows

Descarrega i instal·la XAMPP des de https://www.apachefriends.org/index.html.

Configuració d'Apache per Executar Scripts CGI

  1. Edita el fitxer de configuració d'Apache (httpd.conf o apache2.conf).
  2. Afegeix o descomenta les següents línies:
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
    AllowOverride None
    Options +ExecCGI
    Require all granted
</Directory>
  1. Reinicia Apache:
sudo systemctl restart apache2

Introducció a CGI

CGI (Common Gateway Interface) és un estàndard per a interfícies externes de programes amb servidors d'informació, com els servidors HTTP. Permet que els scripts Perl generin contingut dinàmic.

Primer Script CGI

Crea un fitxer anomenat hello.cgi al directori /usr/lib/cgi-bin/ amb el següent contingut:

#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "<html><head><title>Hello World</title></head>";
print "<body><h1>Hello, World!</h1></body></html>";

Assegura't que el fitxer tingui permisos d'execució:

chmod +x /usr/lib/cgi-bin/hello.cgi

Accedeix al script des del navegador: http://localhost/cgi-bin/hello.cgi.

Creació de Scripts CGI

Estructura Bàsica d'un Script CGI

Un script CGI en Perl segueix una estructura bàsica:

  1. Capçalera HTTP
  2. Contingut HTML

Exemple:

#!/usr/bin/perl
use strict;
use warnings;

print "Content-type: text/html\n\n";
print "<html><head><title>My CGI Script</title></head>";
print "<body><h1>Welcome to my CGI script!</h1></body></html>";

Gestió de Paràmetres

Per gestionar paràmetres passats a través de l'URL o formularis, utilitzem el mòdul CGI.

#!/usr/bin/perl
use strict;
use warnings;
use CGI;

my $query = CGI->new;
my $name = $query->param('name') || 'Guest';

print $query->header('text/html');
print "<html><head><title>CGI Parameters</title></head>";
print "<body><h1>Hello, $name!</h1></body></html>";

Accedeix al script amb paràmetres: http://localhost/cgi-bin/your_script.cgi?name=John.

Gestió de Formularis Web

Creació d'un Formulari

<form action="/cgi-bin/form_handler.cgi" method="post">
    Name: <input type="text" name="name"><br>
    Age: <input type="text" name="age"><br>
    <input type="submit" value="Submit">
</form>

Processament del Formulari

#!/usr/bin/perl
use strict;
use warnings;
use CGI;

my $query = CGI->new;
my $name = $query->param('name');
my $age = $query->param('age');

print $query->header('text/html');
print "<html><head><title>Form Handler</title></head>";
print "<body><h1>Form Data</h1>";
print "<p>Name: $name</p>";
print "<p>Age: $age</p>";
print "</body></html>";

Frameworks Web en Perl

Introducció a Dancer

Dancer és un framework web lleuger i fàcil d'utilitzar per a Perl.

Instal·lació de Dancer

cpan Dancer2

Creació d'una Aplicació Dancer

dancer2 -a MyWebApp
cd MyWebApp
plackup bin/app.psgi

Exemple de Rutes en Dancer

use Dancer2;

get '/' => sub {
    template 'index' => { 'title' => 'Welcome' };
};

post '/submit' => sub {
    my $name = body_parameters->get('name');
    return "Hello, $name!";
};

start;

Exercicis Pràctics

Exercici 1: Script CGI Bàsic

Crea un script CGI que mostri la data i hora actuals.

Solució

#!/usr/bin/perl
use strict;
use warnings;
use POSIX qw(strftime);

print "Content-type: text/html\n\n";
print "<html><head><title>Current Date and Time</title></head>";
print "<body><h1>Current Date and Time</h1>";
print "<p>", strftime("%Y-%m-%d %H:%M:%S", localtime), "</p>";
print "</body></html>";

Exercici 2: Formulari i Processament

Crea un formulari que demani el nom i l'edat de l'usuari i mostri aquesta informació en una pàgina de resposta.

Solució

Formulari HTML:

<form action="/cgi-bin/form_handler.cgi" method="post">
    Name: <input type="text" name="name"><br>
    Age: <input type="text" name="age"><br>
    <input type="submit" value="Submit">
</form>

Script CGI:

#!/usr/bin/perl
use strict;
use warnings;
use CGI;

my $query = CGI->new;
my $name = $query->param('name');
my $age = $query->param('age');

print $query->header('text/html');
print "<html><head><title>Form Handler</title></head>";
print "<body><h1>Form Data</h1>";
print "<p>Name: $name</p>";
print "<p>Age: $age</p>";
print "</body></html>";

Conclusió

En aquest mòdul, hem après a configurar un entorn web per a Perl, crear scripts CGI bàsics, gestionar formularis web i utilitzar frameworks com Dancer per desenvolupar aplicacions web més complexes. La programació web amb Perl és una habilitat valuosa que permet crear aplicacions dinàmiques i interactives. Practica els exercicis proporcionats per reforçar els conceptes apresos i prepara't per explorar més en profunditat les capacitats de Perl en la programació web.

© Copyright 2024. Tots els drets reservats