sub scan_db {
my ($filename, $delim, $tcol, $strip_comments) = @_;
my $fh = new IO::File $filename;
die "$cmdname: $filename: $!\n" unless defined $fh;
my @db = (); my $maxcols = 0;
my @titles = (); my $maxtitlelen = 0; my $recno = 1;
while (<$fh>) {
chomp;
next if /^\s*$/;
next if $strip_comments && /^#/;
my @fields = split $delim;
$maxcols = @fields if @fields > $maxcols;
my $title = "Record #" . $recno ++;
$title = $fields[$tcol]
if defined $fields[$tcol] && $fields[$tcol] ne "";
my $length = length($title);
$maxtitlelen = $length if $length > $maxtitlelen;
push(@titles, $title);
push(@db, \@fields);
}
$fh->close;
return (\@db, \@titles, $maxcols, $maxtitlelen);
}
|