#!/usr/bin/perl -w use strict; use NDBM_File; use Fcntl; use Data::Dumper; $Data::Dumper::Indent = 0; $Data::Dumper::Purity = 1; $Data::Dumper::Terse = 1; my %hash; my $filename = "test_ndbm"; my $db = tie(%hash, 'NDBM_File', $filename, O_RDWR|O_CREAT, 0640) or die "Cannot open $filename: $!\n"; $db->filter_store_value( sub { $_ = Dumper($_); } ); $db->filter_fetch_value( sub { $_ = eval($_) } ); my %to_be_stored = ( this_is => { some_test => 'data' }, which_is => 'fairly', complex => [0, 1, 2], ); my @keys = keys %hash; my $new_id = scalar(@keys); $hash{$new_id} = \%to_be_stored; foreach my $key (keys %hash) { foreach (keys %{$hash{$key}}) { print "hash{$key}{$_} = " . Dumper($hash{$key}{$_}) . "\n"; } } undef $db; untie $hash;