#!/usr/bin/perl -CADS use strict; use charnames ':full'; my $VBAR = "\N{FULLWIDTH VERTICAL LINE}"; my $LEFT = "\N{LEFT DOUBLE ANGLE BRACKET}"; my $RIGHT = "\N{RIGHT DOUBLE ANGLE BRACKET}"; print < EOF while (<>) { chomp; tr/\013//d; #all glosses that have vbars s/$VBAR([^$LEFT]+)$LEFT([^RIGHT]+)$RIGHT/rubify($1,$2)/eg; #all remaining glosses s/(\p{InKanji}+)$LEFT([^$RIGHT]+)$RIGHT/rubify($1,$2)/eg; print "

$_

\n"; } print "\n"; sub rubify { my ($BASE,$RUBY) = @_; return "$BASE$RUBY"; } sub InKanji { return <<'END'; +utf8::InCJKUnifiedIdeographs -utf8::IsCn END }