1MARC::Batch(3)        User Contributed Perl Documentation       MARC::Batch(3)
2
3
4

NAME

6       MARC::Batch - Perl module for handling files of MARC::Record objects
7

SYNOPSIS

9       MARC::Batch hides all the file handling of files of "MARC::Record"s.
10       "MARC::Record" still does the file I/O, but "MARC::Batch" handles the
11       multiple-file aspects.
12
13           use MARC::Batch;
14
15           # If you have weird control fields...
16           use MARC::Field;
17           MARC::Field->allow_controlfield_tags('FMT', 'LDX');
18
19
20           my $batch = MARC::Batch->new( 'USMARC', @files );
21           while ( my $marc = $batch->next ) {
22               print $marc->subfield(245,"a"), "\n";
23           }
24

EXPORT

26       None.  Everything is a class method.
27

METHODS

29   new( $type, @files )
30       Create a "MARC::Batch" object that will process @files.
31
32       $type must be either "USMARC" or "MicroLIF".  If you want to specify
33       "MARC::File::USMARC" or "MARC::File::MicroLIF", that's OK, too. new()
34       returns a new MARC::Batch object.
35
36       @files can be a list of filenames:
37
38           my $batch = MARC::Batch->new( 'USMARC', 'file1.marc', 'file2.marc' );
39
40       Your @files may also contain filehandles. So if you've got a large file
41       that's gzipped you can open a pipe to gzip and pass it in:
42
43           my $fh = IO::File->new( 'gunzip -c marc.dat.gz |' );
44           my $batch = MARC::Batch->new( 'USMARC', $fh );
45
46       And you can mix and match if you really want to:
47
48           my $batch = MARC::Batch->new( 'USMARC', $fh, 'file1.marc' );
49
50   next()
51       Read the next record from that batch, and return it as a MARC::Record
52       object.  If the current file is at EOF, close it and open the next one.
53       next() will return "undef" when there is no more data to be read from
54       any batch files.
55
56       By default, next() also will return "undef" if an error is encountered
57       while reading from the batch. If not checked for this can cause your
58       iteration to terminate prematurely. To alter this behavior, see
59       strict_off(). You can retrieve warning messages using the warnings()
60       method.
61
62       Optionally you can pass in a filter function as a subroutine reference
63       if you are only interested in particular fields from the record. This
64       can boost performance.
65
66   strict_off()
67       If you would like "MARC::Batch" to continue after it has encountered
68       what it believes to be bad MARC data then use this method to turn
69       strict OFF.  A call to strict_off() always returns true (1).
70
71       strict_off() can be handy when you don't care about the quality of your
72       MARC data, and just want to plow through it. For safety, "MARC::Batch"
73       strict is ON by default.
74
75   strict_on()
76       The opposite of strict_off(), and the default state. You shouldn't have
77       to use this method unless you've previously used strict_off(), and want
78       it back on again.  When strict is ON calls to next() will return undef
79       when an error is encountered while reading MARC data. strict_on()
80       always returns true (1).
81
82   warnings()
83       Returns a list of warnings that have accumulated while processing a
84       particular batch file. As a side effect the warning buffer will be
85       cleared.
86
87           my @warnings = $batch->warnings();
88
89       This method is also used internally to set warnings, so you probably
90       don't want to be passing in anything as this will set warnings on your
91       batch object.
92
93       warnings() will return the empty list when there are no warnings.
94
95   warnings_off()
96       Turns off the default behavior of printing warnings to STDERR. However,
97       even with warnings off the messages can still be retrieved using the
98       warnings() method if you wish to check for them.
99
100       warnings_off() always returns true (1).
101
102   warnings_on()
103       Turns on warnings so that diagnostic information is printed to STDERR.
104       This is on by default so you shouldn't have to use it unless you've
105       previously turned off warnings using warnings_off().
106
107       warnings_on() always returns true (1).
108
109   filename()
110       Returns the currently open filename or "undef" if there is not
111       currently a file open on this batch object.
112
114       MARC::Record, MARC::Lint
115

TODO

117       None yet.  Send me your ideas and needs.
118

LICENSE

120       This code may be distributed under the same terms as Perl itself.
121
122       Please note that these modules are not products of or supported by the
123       employers of the various contributors to the code.
124

AUTHOR

126       Andy Lester, "<andy@petdance.com>"
127
128
129
130perl v5.36.0                      2023-01-20                    MARC::Batch(3)
Impressum