# open the files tie(%db_in, 'DB_File', $infile) or die "Can't tie $infile: $!"; tie(%db_out, 'GDBM_File', $outfile, GDBM_WRCREAT, 0666) or die "Can't tie $outfile: $!"; # copy (don't use %db_out = %db_in because it's slow on big databases) while (my($k, $v) = each %db_in) { $db_out{$k} = $v; } #### # open the files tie(%db_in, 'DB_File', $infile) or die "Can't tie $infile: $!"; open TEXT_OUT, ">$outfile" or die "Can't open $outfile: $!"; while (my($key, $value) = each %db_in) { print TEXT_OUT "$key\n$value\n"; }