1#!/usr/bin/perl -w 2 3use Fcntl; 4use MLDBM qw(SDBM_File Storable); 5use Data::Dumper; 6use strict; 7use Test::More tests => 9; 8 9plan skip_all => "Optional module (Storable) not installed" 10 unless eval { 11 require Storable; 12 }; 13tie my %o, 'MLDBM', 'testmldbm', O_CREAT|O_RDWR, 0640 or die $!; 14 15my $c_scalar = 'c'; 16my $c = [\$c_scalar]; 17my $b = {}; 18my $a = [1, $b, $c]; 19$b->{a} = $a; 20$b->{b} = $a->[1]; 21$b->{c} = $a->[2]; 22@o{qw(a b c)} = ($a, $b, $c); 23$o{d} = "{once upon a time}"; 24$o{e} = 1024; 25$o{f} = 1024.1024; 26 27my $compare_ok = &MLDBM::_compare([ @o{qw(a b c)} ], [ $a, $b, $c ]); 28ok($compare_ok); 29 30is($o{d},"{once upon a time}"); 31is($o{e},1024); 32is($o{f},1024.1024); 33#print ( ? "ok 2\n" : "# |$o{d}|\nnot ok 2\n"); 34#print ($o{e} == 1024 ? "ok 3\n" : "# |$o{e}|\nnot ok 3\n"); 35#print ($o{f} eq 1024.1024 ? "ok 4\n" : "# |$o{f}|\nnot ok 4\n"); 36 37# NEW TEST SEQUENCE 38untie %o; 39my $obj = tie %o, 'MLDBM', 'testmldbm', O_CREAT|O_RDWR, 0640 or die $!; 40$obj->DumpMeth('portable'); 41 42$c = [\$c_scalar]; 43$b = {}; 44$a = [1, $b, $c]; 45$b->{a} = $a; 46$b->{b} = $a->[1]; 47$b->{c} = $a->[2]; 48@o{qw(a b c)} = ($a, $b, $c); 49$o{d} = "{once upon a time}"; 50$o{e} = 1024; 51$o{f} = 1024.1024; 52 53$compare_ok = &MLDBM::_compare([ @o{qw(a b c)} ], [ $a, $b, $c]); 54ok($compare_ok); 55 56is($o{d},"{once upon a time}"); 57is($o{e},1024); 58is($o{f},1024.1024); 59#print ($o{d} eq "{once upon a time}" ? "ok 6\n" : "# |$o{d}|\nnot ok 6\n"); 60#print ($o{e} == 1024 ? "ok 7\n" : "# |$o{e}|\nnot ok 7\n"); 61#print ($o{f} eq 1024.1024 ? "ok 8\n" : "# |$o{f}|\nnot ok 8\n"); 62 63my $d=[17]; 64$o{g}=$d; 65$d=''; 66is($o{g}->[0],17); 67