| MARC-Detrans documentation | Contained in the MARC-Detrans distribution. |
MARC::Detrans::Rule
use MARC::Detrans::Rule;
my $rule = MARC::Detrans::Rule->new(
from => 'b',
to => 'B',
escape => '(B'
);
It's unlikely that you'll want to use MARC::Detrans::Rule directly since other modules wrap access to it. Each detransliteration rule is represented as a MARC::Detrans::Rule object, which basically provides the Romanized text and the corresponding MARC-8 or UTF-8 text, along with an escape character (for MARC-8) rules.
Pass in the from and c<to> parameters which define the original text
and what to translate to; these parameters are not limited to single
characters. In addition an escape parameter can be passed in to
indicate a MARC-8 escape sequence to use. Also a position parameter
can be set to initial, medial or final if the rule applies only
when the character is found at or within a particular word boundary.
Returns the Romanized text that this rule refers to.
Returns the MARC-8 or UTF-8 text that the corresponding Romanized text should be converted to.
Returns a MARC-8 character set escape sequence to be used, or undef if the rule is for an UTF-8 mapping.
Returns a position specification for the rule mapping which can be initial, medial, final or the empty string if there is no positional qualification for the rule.
| MARC-Detrans documentation | Contained in the MARC-Detrans distribution. |
package MARC::Detrans::Rule; use strict; use warnings; use Carp qw( croak );
sub new { my ( $class, %opts ) = @_; croak( "must supply 'from' parameter" ) if ! exists( $opts{from} ); croak( "must supply 'to' parameter" ) if ! exists( $opts{to} ); $opts{to} =~ s/\^ESC/\x1B/g; return bless \%opts, ref($class) || $class; }
sub from { return shift->{from}; }
sub to { return shift->{to}; }
sub escape { return shift->{escape}; }
sub position { my $p = shift->{position}; return $p if defined($p); return ''; }
1;