#!/usr/bin/perl
# -*- coding: utf-8; mode: cperl; -*-
# Cyrillic and Greek to ^^HEX format
# 2010.7.30 utf8::decode 二重デコードバグ訂正(Thanks ZRさん)
#use utf8;
#binmode(STDIN, ":utf8"); binmode(STDOUT, ":utf8");
binmode(STDOUT, ":utf8");
while (<STDIN>) {
	utf8::decode($_);
	foreach my $chr (split(//, $_)) {
		if ((($chr ge "\x{0400}") && ($chr le "\x{04ff}")) || # Cyrillic
			(($chr ge "\x{0370}") && ($chr le "\x{03ff}")) || # Greek
			(($chr ge "\x{1f00}") && ($chr le "\x{1fff}"))) { # Greek Ext
			utf8::encode($chr); # UTF-8 encode
			foreach my $bchr (split(//, $chr)) {
				print(sprintf("^^%x", ord($bchr)));
			}
		} else {
			print($chr);
		}
	}
}
