All pastes #838037 Raw Edit

無題

public text v1 · immutable
#838037 ·published 2007-12-30 02:04 UTC
rendered paste body
#!/usr/bin/perl -w
use strict;
use utf8;
use Encode;

BEGIN {
  if(!$ARGV[0]) {
    print "Usage: $0 <word>\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";
}