DBD-XBase

 view release on metacpan or  search on metacpan

bin/indexdump.PL  view on Meta::CPAN


use Config;
my $filename = $0;

$filename =~ s/\.PL$//;
open OUT,">$filename" or die "Can't create $filename: $!";
chmod(0755, $filename);
print "Extracting $filename (with #! and variable substitution)\n";

print OUT <<"EOHEADER";
$Config{'startperl'} -w

EOHEADER

print OUT <<'EOBODY';

#!/usr/bin/perl -w 

use strict;
use XBase::Index;
use Getopt::Long;

my %opts = ();
my $type;
my $startvalue;
my $showtotal;
GetOptions('debug:i' => sub { my $key = shift; my $val = shift;
				$val = 1 if $val eq '0';
				$XBase::Index::DEBUG = $val },
	'type=s' => sub { my $key = shift;
				my $val = shift;
				if ($val eq 'num') { $type = 'N'; }
				elsif ($val eq 'date') { $type = 'D'; }
				elsif ($val eq 'char') { $type = 'C'; }
				elsif ($val eq 'string') { $type = 'C'; }
				else { die "Unknown index type `$val'\n"; }
		},
	'start=s' => \$startvalue,
	'tag=s' => sub { $opts{'tag'} = $_[1]; },
	'n' => sub { $showtotal = 1; },
	);
$opts{'type'} = $type if defined $type;

# AUDIO 4608
# FACILITY 3072
# FILM 9216
# MAIN 7680
# ROOMNAME 1536

my $file = shift;
if (@ARGV and not defined $opts{'tag'}) { $opts{'tag'} = shift; }
my $index = new XBase::Index $file, %opts or die XBase::Index->errstr;
if (not defined $opts{'tag'}) {
	my @tags = $index->tags;
	if (@tags) {
		print map "$_\n", @tags;
		my $numtags = @tags;
		print "Number of tags: $numtags\n" if $showtotal;
		exit;
	}
}

if (defined $startvalue) {
	$index->prepare_select_eq($startvalue) or die $index->errstr;
	}
else {
	$index->prepare_select or die $index->errstr;



( run in 1.156 second using v1.01-cache-2.11-cpan-39bf76dae61 )