538f8ead6ab3874c73571bb686e4381b75409b51
[MARC-Fast] / scripts / dump_fastmarc.pl
1 #!/usr/bin/perl -w
2
3 use strict;
4 use blib;
5
6 use MARC::Fast;
7 use Getopt::Std;
8 use Data::Dumper;
9
10 my %opt;
11 getopts('dn:', \%opt);
12
13 my $file = shift @ARGV || die "usage: $0 [-n number] [-d] file.marc\n";
14
15 my $marc = new MARC::Fast(
16         marcdb => $file,
17         debug => $opt{'d'},
18 );
19
20
21 my $min = 1;
22 my $max = $marc->count;
23
24 if (my $mfn = $opt{'n'}) {
25         $min = $max = $mfn;
26         print STDERR "Dumping $mfn only\n";
27 } else {
28         print STDERR "$file has $max records...\n";
29 }
30
31 for my $mfn ($min .. $max) {
32         my $rec = $marc->fetch($mfn) || next;
33         print Dumper($rec);
34         print "REC $mfn\n";
35         foreach my $f (sort keys %{$rec}) {
36                 print "$f\t", join('', $rec->{$f}) ,"\n";
37         }
38         print "\n";
39         print Dumper($marc->to_hash($mfn));
40 }