Echando código: Como conectarse a una base de datos usando Perl

Bueno, dado que últimamente sólo he puesto código de Java, vamos a hacerle un cariñito a Perl 🙂

Resulta que Perl también tiene una API muy fácil de usar llamada DBI; Cada base de datos a su vez cuenta con un módulo especializado llamado DBD::XXX. Así hay modulos para PostgreSQL (DBD:Pgsql), MySQL (DBD::Mysql), Sybase (DBD::Sybase) y así sucesivamente.

¿Que tal fácil es de usar?. Bueno, este pequeño programa se conecta a una base de datos MySQL y hace un simple ‘select count(*)’:

   1:#!/usr/bin/perl

2:# Author: Jose Vicente Nunez Zuleta (josevnz@yahoo.com).
3:#
4:use DBI;
5:use DBD::mysql;
6:use strict;
7:
8:my $user = "bugs";
9:my $password = "xxxx";
10:my $database = "bugs";
11:my $driver = "Mysql";
12:my $host = "localhost";
13:my $port = 3306;
14:
15:my $sql = <<SQL
16:SELECT count(*) FROM bugs
17:SQL
18:;
19:
20:my $dsn = "DBI:mysql:database=$database;host=$host;port=$port";
21:my $con = undef;
22:my $res = undef;
23:eval {
24: DBI->connect($dsn, $user, $password);
25:
26: $res = $con->prepare($sql);
27: $res->execute();
28: while (my ($count) = $res->fetchrow()) {
29: print("$count\n");
30: }
31:};
32:if ($DBI::errstr) {
33: die "$DBI::errstr";
34:}
35:
36:if (defined $res) {
37: $res->finish();
38:}
39:if (defined $con) {
40: $con->disconnect();
41:}
42:
43:__END__

Estos modulos los puede conseguir en CPAN (la base de datos de software para Perl más grande del mundo). Puede empezar con este tutorial si de verdad quiere aprender más.