#!/usr/bin/perl -W

# Author: Cengiz Gunay, Emory University

use Fcntl;
use DB_File;

if ($#ARGV < 1) {
  print "Error: arguments missing.\n\n";
  &usage;
  exit -1;
}

my $parfile = shift;
my $row_num = shift;

die "Row numbers start from 1!" if $row_num < 1;

my $dbfilename = "$parfile.db";

tie(%param_rows, DB_File, $dbfilename, O_RDONLY, 0666, $DB_HASH ) or
  die "Cannot access the parameter database $dbfilename:\n$!\n\n";

# read parameter row
print $param_rows{$row_num};

untie %param_rows;

sub usage {
  print "Usage: $0 parameter_file row_num\n\n" .
        "Reads a row from the parameter database using a hash-based \n" .
        "access without searching all rows. Run create_perlhash_param_db \n" .
        "to initialize the database file from a text-based parameter file.\n" .
        "Row numbers start from 1.\n";
}