Generar codigo QR desde postgreSQL con Perl

perl_frase

qr-leninmhsComo practica para probar y conocer como generar códigos QR en Perl, realizaremos el siguiente ejercicio: conectarnos a una base de datos, consultar el identificador único de cada producto en una tabla de nuestra base de datos postgres, generar el código QR de cada uno de los productos. Cada QR direccionara a un url compuesto por una pagina web + el identificador, con lo cual suponemos que en ese url hubiera la información con mas detalle del producto. La practica sera realizada en Debian GNU/Linux

Usaremos el modulo de CPAN Imager::QRCode para generar nuestros QR. Mas información: http://search.cpan.org/~kurihara/Imager-QRCode/lib/Imager/QRCode.pm

Para conectarnos y consultar la base de datos, usaremos la extensión para postgres de Class::DBI. Mas información: http://search.cpan.org/~rudy/DBD-Pg/Pg.pm

Ambos módulos los tendremos disponibles en nuestro Debian con: #aptitude install libimager-qrcode-perl libclass-dbi-pg-perl

Crearemos un archivo de texto con extensión .pl colocaremos y adaptaremos lo siguiente:

Código Fuente

#!/usr/bin/perl -w
use Imager::QRCode;
use DBI;

my $bd = DBI->connect("DBI:Pg:dbname=bd_ventas;host=192.168.0.1", "usuario_bd", "clave_bd", {'RaiseError' => 1});
my (@consulta, $sth);

$sth=$bd->prepare("SELECT id_producto FROM productos");
$sth->execute();

my $qrcode = Imager::QRCode->new(
size          => 8,
margin        => 1,
version       => 4,
level         => 'L',
casesensitive => 1,
lightcolor    => Imager::Color->new(255, 255, 255),
darkcolor     => Imager::Color->new(0, 0, 0),
);

while(@consulta = $sth->fetchrow_array() ){
$img = $qrcode->plot("http://paginaweb.com.ve/$consulta[0]", \%params);
$img->write(file => "$consulta[0].gif");
}#fin while

Explicación del código fuente

Nota: La numeración presentada a continuación corresponde a las lineas de código presentadas anteriormente.

Sigue leyendo