in reply to Re^2: MLDMB Problem
in thread MLDBM Problem

It might be time for you to show some code -- in particular, what you have on the same line with  use MLDBM and what the  tie statement looks like, along with anything else relevant to the latter.

Now that you have DB_File installed, you could also test what happens when you open/tie your 5-yr-old data file as a plain-vanilla DB_File hash, just to make sure it's still readable, and to get a look at what the keys and values are.

UPDATE: In case it helps, here's a quick/easy way to dump out the contents of a DB_File hash:

use strict; use DB_File; my $Usage = "Usage: $0 db_file_name\n"; die $Usage unless ( @ARGV == 1 and -f $ARGV[0] ); my %file_hash; tie ( %file_hash, 'DB_File', $ARGV[0] ) or die "DB_File: $ARGV[0]: $!"; while ( my ( $key, $val ) = each %file_hash ) { print "key: $key\n$val\n;\n"; } untie %file_hash;
Redirect STDOUT to some other file. It will have records delimited by "\n;\n", and each record will have at least two lines of data, the first line being the hash key (preceded by "key: ") and the second line (plus any additional lines preceding "\n;\n") being the value for that key.

(another update: this assumes that your key strings do not contain line-breaks while you values might; in any case, you could also transliterate things to suit your taste -- e.g.  s/(\p{IsCntrl})/sprintf("0x{%02x}",ord($1))/ge; or something like that.)