La programación web con Perl es una habilidad poderosa que permite a los desarrolladores crear aplicaciones web dinámicas y robustas. En este tema, exploraremos cómo utilizar Perl para desarrollar aplicaciones web, desde la configuración básica hasta la creación de aplicaciones web completas.

Contenido

  1. Introducción a la Programación Web con Perl
  2. Configuración del Entorno para Programación Web
  3. CGI: Common Gateway Interface
  4. Módulos Web Populares en Perl
  5. Creación de una Aplicación Web Simple
  6. Manejo de Formularios y Datos del Usuario
  7. Sesiones y Cookies
  8. Ejercicio Práctico
  9. Conclusión

  1. Introducción a la Programación Web con Perl

Perl ha sido una herramienta popular para la programación web desde los primeros días de la web. Su capacidad para manejar texto y su flexibilidad lo hacen ideal para tareas como la generación de contenido dinámico y la manipulación de datos.

  1. Configuración del Entorno para Programación Web

Antes de comenzar a programar, necesitamos configurar nuestro entorno de desarrollo.

Requisitos

  • Perl: Asegúrate de tener Perl instalado en tu sistema.
  • Servidor Web: Apache es una opción popular, pero cualquier servidor web que soporte CGI funcionará.
  • Módulos Perl: CGI.pm, Dancer2, Mojolicious, entre otros.

Instalación de Módulos

Puedes instalar módulos Perl usando CPAN. Por ejemplo, para instalar CGI.pm:

cpan CGI

  1. CGI: Common Gateway Interface

CGI es una interfaz estándar que permite a los servidores web ejecutar programas externos y devolver resultados al navegador del usuario.

Ejemplo Básico de CGI

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

my $cgi = CGI->new;
print $cgi->header('text/html');
print $cgi->start_html('Hola Mundo');
print $cgi->h1('Hola Mundo desde Perl');
print $cgi->end_html;

Guarda este script como hello.cgi y asegúrate de que sea ejecutable:

chmod +x hello.cgi

Coloca el script en el directorio CGI de tu servidor web y accede a él desde tu navegador.

  1. Módulos Web Populares en Perl

Dancer2

Dancer2 es un framework web ligero y flexible para Perl.

Instalación

cpan Dancer2

Ejemplo Básico

use Dancer2;

get '/' => sub {
    return 'Hola Mundo desde Dancer2';
};

start;

Mojolicious

Mojolicious es otro framework web moderno y potente para Perl.

Instalación

cpan Mojolicious

Ejemplo Básico

use Mojolicious::Lite;

get '/' => {text => 'Hola Mundo desde Mojolicious'};

app->start;

  1. Creación de una Aplicación Web Simple

Vamos a crear una aplicación web simple usando Dancer2.

Estructura del Proyecto

myapp/
├── bin/
│   └── app.pl
├── config/
│   └── config.yml
├── lib/
├── public/
│   └── index.html
└── views/
    └── index.tt

Código de la Aplicación

bin/app.pl

#!/usr/bin/env perl
use Dancer2;

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

start;

views/index.tt

<!DOCTYPE html>
<html>
<head>
    <title>Mi Aplicación Web</title>
</head>
<body>
    <h1>Hola Mundo desde Dancer2</h1>
</body>
</html>

  1. Manejo de Formularios y Datos del Usuario

Ejemplo de Formulario

views/form.tt

<!DOCTYPE html>
<html>
<head>
    <title>Formulario</title>
</head>
<body>
    <form method="post" action="/submit">
        <label for="name">Nombre:</label>
        <input type="text" id="name" name="name">
        <input type="submit" value="Enviar">
    </form>
</body>
</html>

Manejo de Datos del Formulario

bin/app.pl

#!/usr/bin/env perl
use Dancer2;

get '/' => sub {
    template 'form';
};

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

start;

  1. Sesiones y Cookies

Uso de Sesiones

bin/app.pl

#!/usr/bin/env perl
use Dancer2;

set session => 'Simple';

get '/' => sub {
    session name => 'Usuario';
    return "Sesión iniciada";
};

get '/welcome' => sub {
    my $name = session('name');
    return "Bienvenido, $name!";
};

start;

  1. Ejercicio Práctico

Ejercicio

Crea una aplicación web que permita a los usuarios registrarse y luego iniciar sesión. La aplicación debe almacenar los datos de los usuarios en un archivo y utilizar sesiones para manejar el estado de inicio de sesión.

Solución

Estructura del Proyecto

myapp/
├── bin/
│   └── app.pl
├── config/
│   └── config.yml
├── lib/
├── public/
│   └── index.html
└── views/
    ├── register.tt
    ├── login.tt
    └── welcome.tt

Código de la Aplicación

bin/app.pl

#!/usr/bin/env perl
use Dancer2;
use Storable qw(store retrieve);

set session => 'Simple';

my $users_file = 'users.dat';
my $users = -e $users_file ? retrieve($users_file) : {};

get '/register' => sub {
    template 'register';
};

post '/register' => sub {
    my $username = body_parameters->get('username');
    my $password = body_parameters->get('password');
    $users->{$username} = $password;
    store $users, $users_file;
    return "Usuario registrado con éxito";
};

get '/login' => sub {
    template 'login';
};

post '/login' => sub {
    my $username = body_parameters->get('username');
    my $password = body_parameters->get('password');
    if (exists $users->{$username} && $users->{$username} eq $password) {
        session username => $username;
        redirect '/welcome';
    } else {
        return "Nombre de usuario o contraseña incorrectos";
    }
};

get '/welcome' => sub {
    my $username = session('username');
    return "Bienvenido, $username!" if $username;
    redirect '/login';
};

start;

views/register.tt

<!DOCTYPE html>
<html>
<head>
    <title>Registro</title>
</head>
<body>
    <form method="post" action="/register">
        <label for="username">Nombre de usuario:</label>
        <input type="text" id="username" name="username">
        <label for="password">Contraseña:</label>
        <input type="password" id="password" name="password">
        <input type="submit" value="Registrar">
    </form>
</body>
</html>

views/login.tt

<!DOCTYPE html>
<html>
<head>
    <title>Iniciar Sesión</title>
</head>
<body>
    <form method="post" action="/login">
        <label for="username">Nombre de usuario:</label>
        <input type="text" id="username" name="username">
        <label for="password">Contraseña:</label>
        <input type="password" id="password" name="password">
        <input type="submit" value="Iniciar Sesión">
    </form>
</body>
</html>

views/welcome.tt

<!DOCTYPE html>
<html>
<head>
    <title>Bienvenido</title>
</head>
<body>
    <h1>Bienvenido, [% username %]!</h1>
</body>
</html>

  1. Conclusión

En esta sección, hemos aprendido cómo utilizar Perl para desarrollar aplicaciones web. Hemos cubierto desde la configuración del entorno hasta la creación de una aplicación web completa con manejo de formularios, sesiones y cookies. Con estas habilidades, estás preparado para crear aplicaciones web dinámicas y robustas utilizando Perl.

En el próximo módulo, exploraremos técnicas avanzadas de programación web, incluyendo el uso de bases de datos y la creación de aplicaciones web más complejas. ¡Sigue practicando y experimentando con Perl para mejorar tus habilidades!

© Copyright 2024. Todos los derechos reservados