#!/usr/bin/perl -w use strict; use utf8; use Encode; BEGIN { if(!$ARGV[0]) { print "Usage: $0 \n"; exit(1); } } binmode(STDIN, ':utf8'); binmode(STDOUT, ':utf8'); my $kanji = $ARGV[0]; Encode::from_to($kanji, 'utf-8', 'shift-jis'); my $hira = `echo $kanji|kakasi -JH -f`; $hira = decode('shift-jis', $hira); $hira =~ s/^(.*)\[(.*)\](.*)$/$1 $2 $3/; my($k, $h, $o) = split(' ', $hira); my @array = split(//, $h); for(my $i = length($h)-1; $i >= 0; $i--) { if($array[$i] eq substr($h, -1, 1)) { my $kTemp = substr($k, -1, 1, ''); $k =~ s/$kTemp$//; $h =~ s/$kTemp$//; } } $h =~ s/$k$//; if($ARGV[1]) { if($ARGV[1] eq 'romaji') { $h = encode_utf8($h); Encode::from_to($h, 'utf-8', 'shift-jis'); my $romaji = `echo $h|kakasi -Ha -f`; chomp($romaji); print $romaji, "\n"; } }else{ print $h, "\n"; }