App-MARC-Record-Stats
view release on metacpan or search on metacpan
use Class::Utils qw(set_params);
use English;
use Error::Pure qw(err);
use Getopt::Std;
use List::Util 1.33 qw(none);
use MARC::File::XML (BinaryEncoding => 'utf8', RecordFormat => 'MARC21');
use MARC::Record::Stats;
use Readonly;
use Unicode::UTF8 qw(encode_utf8);
Readonly::Array our @INPUT_FORMATS => qw(xml);
our $VERSION = 0.01;
# Constructor.
sub new {
my ($class, @params) = @_;
# Create object.
my $self = bless {}, $class;
print STDERR "Usage: $0 [-h] [-i format] [--version] marc_file\n";
print STDERR "\t-h\t\tPrint help.\n";
print STDERR "\t-i format\tInput MARC format. Possible formats is xml (default values is xml).\n";
print STDERR "\t--version\tPrint version.\n";
print STDERR "\tmarc_file\tMARC file.\n";
return 1;
}
$self->{'_marc_file'} = shift @ARGV;
# Check output format.
if (none { $self->{'_opts'}->{'i'} eq $_ } @INPUT_FORMATS) {
err "Input format '$self->{'_opts'}->{'i'}' doesn't supported.";
}
my $stats = MARC::Record::Stats->new;
my $marc_file;
if ($self->{'_opts'}->{'i'} eq 'xml') {
$marc_file = MARC::File::XML->in($self->{'_marc_file'});
if (! defined $marc_file) {
err 'Cannot create object for MARC file.';
( run in 0.387 second using v1.01-cache-2.11-cpan-64827b87656 )