MLDBM

El módulo Multi level DBM MLDBM permite guardar estructuras de datos Perl en ficheros DBM (Véase 10.2). Para tenerlo instalado es necesario tener previamente instaladas las rutinas Berkeley Database Manager. El módulo utiliza DBM, proveyendo la funcionalidad para serializar estructuras de datos anidadas. DBM es una librería que maneja tablas hash en disco. La librería ha dado lugar a un buen número de variantes: SDBM, NDBM, GDBM, etc las cuales pueden ser accedidas a través de los correspondientes módulos Perl, los cualés hacen uso de tie para proporcionar un acceso transparente a la tabla almacenada en el disco.

Es por esto que cuando se usa admite como parámetros una especificacción de las librerías de manejo de DBM y del serializador. Por ejemplo:

     use MLDBM;                          # Manejadores por defecto: SDBM
     #use MLDBM qw(DB_File FreezeThaw);  # Usaremos FreezeThaw para serialización
     #use MLDBM qw(DB_File Storable);    # Usaremos Storable para serialización

Véase un ejemplo de uso del módulo MLDBM :

$ cat -n mldbmtest2.pl
 1  #!/usr/bin/perl
 2  use warnings;
 3  use Data::Dumper;
 4  use MLDBM qw( DB_File Storable );
 5  use Fcntl; # Para importar constantes O_CREAT O_RDWR
 6
 7  unlink 'mldbmtest.dat';
 8
 9  tie my %db1, 'MLDBM', 'mldbmtest.dat', O_CREAT | O_RDWR, 0666
10      or die "No se pudo inicializar el fichero MLDBM: $!\n";
11
12  %db1 = (
13      'alu2511' => {
14          nombre => 'Josefina Fernández Pérez',
15          tel => '922 00 00 00',
16          fecha => '22/07/84'
17      },
18      'alu2233' => {
19          nombre => 'Ana Feliú Forner',
20          tel => '922 00 11 22',
21          fecha => '14/06/85'
22      }
23  );
24
25  untie %db1;
26
27  tie my %db2, 'MLDBM', 'mldbmtest.dat', O_RDWR, 0666
28      or die "No se pudo leer el fichero MLDBM: $!\n";
29
30  print Data::Dumper->Dump( [ \%db2 ] );
31
32  untie %db2;
33
34  exit;
Cuando se ejecuta se obtiene el siguiente resultado:
 ./mldbmtest2
$VAR1 = {
  'alu2511' => {
     'fecha' => '22/07/84',
     'tel' => '922 00 00 00',
     'nombre' => 'Josefina Fernández Pérez'
  },
  'alu2233' => {
     'fecha' => '14/06/85',
     'tel' => '922 00 11 22',
     'nombre' => 'Ana Feliú Forner'
  }
};

Casiano Rodríguez León
Licencia de Creative Commons
Principios de Programación Imperativa, Funcional y Orientada a Objetos Una Introducción en Perl/Una Introducción a Perl
por Casiano Rodríguez León is licensed under a Creative Commons Reconocimiento 3.0 Unported License.

Permissions beyond the scope of this license may be available at http://campusvirtual.ull.es/ocw/course/view.php?id=43.
2012-06-19