Convert-MRC
view release on metacpan or search on metacpan
lib/Convert/MRC.pm view on Meta::CPAN
#
# This file is part of Convert-MRC
#
# This software is copyright (c) 2013 by Alan K. Melby.
#
# This is free software; you can redistribute it and/or modify it under
# the same terms as the Perl 5 programming language system itself.
#
# MRC to TBX converter
# written June-Nov 2008 by Nathan E. Rasmussen
# Modified 2013 by Nathan G. Glenn
# Example input data follows:
# TEST DATA HERE
package Convert::MRC;
use strict;
use warnings;
use Data::Dumper;
use Carp;
use English qw(-no_match_vars);
use Log::Message::Simple qw (:STD);
#import global constants used in processing
use Convert::MRC::Variables;
# ABSTRACT: CONVERT MRC TO TBX-BASIC
our $VERSION = '4.03'; # VERSION
use open ':encoding(utf8)', ':std'; # incoming/outgoing data will be UTF-8
our @origARGV = @ARGV;
local @ARGV = (q{-}) unless @ARGV; # if no filenames given, take std input
#use batch() if called as a script
__PACKAGE__->new->batch(@ARGV) unless caller;
#allows us to get some kind of version string during development, when $VERSION is undefined
#($VERSION is inserted by a dzil plugin at build time)
sub _version {
## no critic (ProhibitNoStrict)
no strict 'vars';
return $VERSION || q{??};
}
sub new {
my ($class) = @_;
my $self = bless {}, $class;
$self->_init;
return $self;
}
sub _init {
my ($self) = @_;
$self->input_fh( \*STDIN );
$self->tbx_fh( \*STDOUT );
$self->log_fh( \*STDERR );
return;
}
sub tbx_fh {
## no critic (RequireBriefOpen)
my ( $application, $fh ) = @_;
if ($fh) {
if ( ref($fh) eq 'GLOB' ) {
$application->{tbx_fh} = $fh;
}
else {
open my $fh2, '>', $fh or die "Couldn't open $fh";
$application->{tbx_fh} = $fh2;
}
}
return $application->{tbx_fh};
}
sub log_fh {
## no critic (RequireBriefOpen)
my ( $application, $fh ) = @_;
if ($fh) {
if ( ref($fh) eq 'GLOB' ) {
$application->{log_fh} = $fh;
}
else {
open my $fh2, '>', $fh or die "Couldn't open $fh";
$application->{log_fh} = $fh2;
}
}
return $application->{log_fh};
}
( run in 0.967 second using v1.01-cache-2.11-cpan-98e64b0badf )