#!/usr/bin/perl

use strict;
use Getopt::Long;
use GDBM_File;

our ($g_ifile, $g_ofile, $g_delim, $g_csv);

GetOptions(
    "ifile=s", \$g_ifile,
    "ofile=s", \$g_ofile,
    "delimiter=s", \$g_delim,
    "csv", \$g_csv
);

# begin "main"
{
    my ($d, %hash, $k) = ();

    if (defined($g_delim))
    {
	$d = $g_delim;
    }
    else
    {
	$d = "\t";
    }

    tie %hash, 'GDBM_File', $g_ifile, &GDBM_READER, 0644;

    if (defined($g_ofile))
    {
	open(OFILE, ">$g_ofile");
	select(OFILE);
    }

    print "# key${d}value\n";
    foreach $k (keys %hash)
    {
	if (defined($g_csv))
	{
	    print "\"$k\", \"$hash{$k}\"\n"
	}
	else
	{
	    print "$k$d$hash{$k}\n"
	}
    }

    untie %hash;
}
# end "main"
