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 )