/usr/local/CPAN/Lingua-JA-Sort-JIS/Lingua/JA/Sort/JIS.pm
package Lingua::JA::Sort::JIS;
use strict;
use vars qw($VERSION $PACKAGE @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
use Carp;
require Exporter;
@ISA = qw(Exporter);
my @Sort = qw/jsort fsort msort xsort bsort/;
my @Cmp = qw/jcmp karr kcmp/;
my @Get = qw/getorder getkanji/;
@EXPORT = qw();
@EXPORT_OK = (@Sort, @Cmp, @Get);
%EXPORT_TAGS = (
sort => \@Sort,
cmp => \@Cmp,
get => \@Get,
);
$VERSION = '0.05';
$PACKAGE = 'Lingua::JA::Sort::JIS'; # __PACKAGE__
my $Level = 4;
my $Kanji = 2;
sub new {
my $coderef = undef;
my $class = shift;
if(ref $_[0] eq 'CODE'){ $coderef = shift }
my $level = shift || $Level;
my $kanji = shift || $Kanji;
return bless {
code => $coderef,
level => $level,
kanji => $kanji,
}, $class;
}
my $Char =
'\xEF\xBD[\xB3\xB6-\xBF]\xEF\xBE\x9E|'
. '\xEF\xBE[\x80-\x84]\xEF\xBE\x9E|'
. '\xEF\xBE[\x8A-\x8E]\xEF\xBE[\x9E\x9F]|'
. '[\x00-\x7F]|[\xC2-\xDF][\x80-\xBF]|'
. '\xE0[\xA0-\xBF][\x80-\xBF]|'
. '[\xE1-\xEF][\x80-\xBF][\x80-\xBF]|'
. '\xF0[\x90-\xBF][\x80-\xBF][\x80-\xBF]|'
. '[\xF1-\xF3][\x80-\xBF][\x80-\xBF][\x80-\xBF]|'
. '\xF4[\x80-\x8F][\x80-\xBF][\x80-\xBF]';
my $CJK = '\xE4[\xB8-\xBF][\x80-\xBF]|[\xE5-\xE9][\x80-\xBF][\x80-\xBF]';
my $JISkanji = <<'EOF';
äºåå¨é¿åææ¨å§¶é¢èµèç©æªæ¡æ¸¥æè¦è¦é¯µæ¢å§æ¡æ±å®å§è»é£´çµ¢ç¶¾é®
æç²è¢·å®åºµæææ¡ééæä»¥ä¼ä½ä¾åå²å¤·å§å¨å°æææ
°ææ¤
çºçç°ç§»
ç¶ç·¯èèè¡£è¬ééºå»äºäº¥åè²é磯ä¸å£±æº¢é¸ç¨²è¨èé°¯å
å°å½å¡å å§»å¼
飲淫è¤èé¢é°é é»åå³å®çç¾½è¿é¨å¯éµçªºä¸ç¢è¼æ¸¦å忬è鰻姥婿µ¦
çéåäºéé²èé¤å¡å¶å¬°å½±æ æ³æ 永泳洩ççç©é ´è±è¡è© éæ¶²ç«çé§
æ¦è¬è¶é²æ¦åååå °å¥å®´å»¶æ¨æ©æ´æ²¿æ¼ççç
çç¿ç¸è¶èèé éé´å¡©
æ¼æ±ç¥å¹å¤®å¥¥å¾å¿æ¼æºæ¨ªæ¬§æ®´çç¿è¥é´¬é´é»å²¡æ²è»å屿¶èæ¡¶ç¡ä¹ä¿º
叿©æ¸©ç©é³ä¸åä»®ä½ä¼½ä¾¡ä½³å å¯åå¤å«å®¶å¯¡ç§æææ¶ææ²³ç«çç¦ç¦¾ç¨¼
ç®è±èèè·è¯èè¦èª²å©è²¨è¿¦ééèä¿å³¨æçç»è¥è½è¾è³é
é¤é§ä»ä¼è§£
åå¡å£å»»å¿«æªææ¢ææææ¹éæ¦æ¢°æµ·ç°çççµµè¥è¹ééè²å±å¾å¤å³å®³
å´æ
¨æ¦æ¶¯ç¢èè¡è©²é§éª¸æµ¬é¦¨è壿¿èéååå廿¡æ¹æ ¼æ ¸æ®»ç²ç¢ºç©«è¦
è§èµ«è¼éé£éé©å¦å²³æ¥½é¡é¡æç¬ æ¨«æ©¿æ¢¶é°æ½å²åæ°æ¬æ´»æ¸æ»èè¤è½ä¸
鰹嶿¤æ¨ºéæ ªå
ç«è²ééåé´¨æ ¢è
è±ç²¥åè
ç¦ä¹¾ä¾å å¯ååå§å·»åå ª
姦å®å®å¯å¹²å¹¹æ£ææ
£æ¾ææ¢ææ¡æ£ºæ¬¾ææ±æ¼¢æ¾æ½
ç°çç£ç竿管簡緩缶
ç¿°èè¦è観è«è²«ééééé¢é¥é館è丸å«å²¸å·ç©çç¼å²©ç¿«è´éé é¡é¡
ä¼ä¼å±åå¨åºå¥å¬å¯å²å¸å¹¾å¿æ®æºææ¢ææ£æ£æ©å¸°æ¯
æ°æ±½ç¿ç¥å£ç¨ç´
å¾½è¦è¨è²´èµ·è»è¼é£¢é¨é¬¼äºå½åå¦å®æ¯ææ¬æ¬ºç çç¥ç¾©è»èª¼è°æ¬èé å
å嫿¡æ©è©°ç §æµé»å´å®¢èèéä¸ä¹
ä»ä¼åå¸å®®å¼æ¥ææ½æ±æ±²æ³£ç¸çç©¶
窮ç¬ç´ç³¾çµ¦æ§çå»å±
å·¨ææ ææ¸ è許è·é¸æ¼ç¦¦é亨享京ä¾ä¾ åå
ç«¶å
±
å¶åå¡å¿å«å¬å¢å³¡å¼·å½æ¯æææææ©æ³ççç¯è¸è
èèé·é¡é¿é¥é©ä»°
åå°ææ¥å±æ²æ¥µçæ¡ç²å
å¤å巾馿¤æ¬£æ¬½ç´ç¦ç¦½çç·è¹èè¡¿è¥è¬¹è¿é
åéä¹å¶å¥åºççç©è¦èº¯é§é§é§å
·æèå°ç©ºå¶å¯éé
串æ«é§å±å±æçª
æ²é´è½¡çªªçéç²æ ç¹°æ¡é¬å²åè«è¨ç¾¤è»é¡å¦è¢ç¥ä¿å¾åå
ååçªåå¥
形徿µæ
¶æ
§æ©æ²æºæ¬æ¯æ¡æ¸ç¦ç¨½ç³»çµç¶ç¹ç½«èèèè¨è©£è¦è»½é é¶è¸è¿
靍忿æ¿éæ¡åæ¬ æ±ºæ½ç©´çµè¡è¨£æä»¶å¹å¦å¥å
¼å¸å£å§åå
å«å»ºæ²æ¸
æ³æ²æ¤æ¨©ç½ç¬ç®ç 硯絹çè©è¦è¬è³¢è»é£éµéºé¡é¨é¹¸å
åå³å¹»å¼¦æ¸æºç
ç¾çµè·è¨è«ºéä¹åå¤å¼åºå§å¤å·±åº«å¼§æ¸æ
æ¯æ¹çç³è¢´è¡è¡è°èèªè·¨é·
éé¡§é¼äºäºä¼ååå¾å¨¯å¾å¾¡ææ¢§æªçç¢èªèª¤è·éä¹é¯äº¤ä½¼ä¾¯ååå
å
¬
åå¹å¾åå£ååååå¢å¥½ååå®å·¥å·§å··å¹¸åºåºåº·å¼ææ
æææ§æ»ææ
æ´ææ ¡æ¢æ§æ±æ´ªæµ©æ¸¯æºç²çç¡¬ç¨¿ç³ ç´
ç´çµç¶±èèè¯è±è
èèªèè¡è¡¡è¬
貢購éé
µé±ç ¿é¼é¤éé
é¦é«é´»åå«å·å壿·æ¿ 豪è½éº¹å
å»åå½ç©é
·éµ
é»çæ¼è
°ç忽æéª¨çè¾¼æ¤é ä»å°å¤å¢¾å©æ¨ææææ ¹æ¢±æ··çç´ºè®éäºä½
åååµ¯å·¦å·®æ»æ²ç³ç è©éè£å座æ«åµå¬åæåå¡å¦»å®°å½©ææ¡æ ½æ³æ¸ç½
éçç ç ¦ç¥æç´°èè£è¼éå¤å¨æç½ªè²¡å´åéªå ºæ¦è´å²å´å¼ç¢é·ºä½åå
æ¾æ¨ææµçªçç´¢é¯æ¡é®ç¬¹ååå·å¯æ¶æ®æ¦ææ®ºè©éç靿éé®«ç¿æä¸
ååå±±æ¨ææ£æ¡ç¦çç£ç®çºèè®è³é
¸é¤æ¬æ«æ®ä»ä»ä¼ºä½¿åºå¸å²å£å士
å§å§å§¿åå±å¸å¸«å¿æææ¯åæ¯æ½æ¨ææ¢æ»æ°ç
ç¥ç§ç³¸ç´ç´«è¢èè³è¦è©
詩試èªè«®è³è³é飼æ¯äºä¼¼ä¾å
å寺æ
æææ¬¡æ»æ²»ç¾ç½çç£ç¤ºèè³èªè
è¾æ±é¹¿å¼è鴫竺軸å®é«ä¸å±å·å¤±å«å®¤ææ¹¿æ¼ç¾è³ªå®èç¯ å²æ´è屡èç¸
èåå°æ¨èµ¦æç
®ç¤¾ç´è
è¬è»é®èéªååºå°ºæç¼çµé
éé«è¥å¯å¼±æ¹ä¸»å
å®ææ±æ®ç©ç 種è
«è¶£é
é¦åååªå¯¿ææ¨¹ç¶¬éååå¨å®å°±å·ä¿®ææ¾æ´²ç§
ç§çµç¹ç¿èèèè¡è¥²è®è¹´è¼¯é±é
é
¬ééä»ä½å
åå¾æææ±æ¸ç£ç¸¦éé
åå¤å®¿æ·ç¥ç¸®ç²å¡¾çåºè¡è¿°ä¿å³»æ¥ç¬ç«£èé§¿åå¾ªæ¬æ¥¯æ®æ·³æºæ½¤ç¾ç´å·¡
éµéé å¦åææææ¸åº¶ç·ç½²æ¸è¯è·è«¸å©å女åºå¾æé¤é¤å·ååå åå¬
å¨åå±å奨妾娼宵å°å°å°å°åºåºå» å½°æ¿ææææ·ææææ¶æ¾æ¢¢æ¨æ¨µæ²¼
æ¶æ¸æ¹ç¼ç¦ç
§ççç¡ç¤ç¥¥ç§°ç« ç¬ç²§ç´¹èèèèè¡è£³è¨è¨¼è©è©³è±¡è³é¤é¦
é¾éééä¸ä¸ä¸ä¹åå°åå ´å£å¬¢å¸¸æ
æ¾æ¡ææµç¶ç³ç©£è¸è²é¸é å±å´é£¾
ææ¤æ®çç¹è·è²è§¦é£è辱尻伸信侵åå¨ å¯å¯©å¿æ
æ¯æ°ææ£®æ¦æµ¸æ·±ç³ç¹
çç¥ç§¦ç´³è£è¯èªè¦ªè¨ºèº«è¾é²éé人ä»å塵壬å°çå°½è
è¨è¿
é£é笥è«é
é
¢å³å¨éå¹åå¸¥æ¨æ°´çç¡ç²ç¿ è¡°éé
éééçé«å´åµ©æ°æ¢è¶¨éæ®ææ¤
è
é éè£¾æ¾æºå¯¸ä¸ç¬çæ¯åå¶å¢å§å¾æ§ææ¿æ´ææ´æ£²æ æ£æ¸
ç²ççç²¾
èå£°è£½è¥¿èª èªè«ééééæç¨èé»å¸æææ¥ææç³ç©ç±ç¸¾è責赤跡è¹
ç¢©åææ¥ææè¨çªç¯èª¬éªçµ¶èèä»å
åå 宣å°å°å·æ¦ææ°æ æ ´æ³æµ
æ´
ææ½ç
ç
½æç©¿ç®ç·ç¹ç¾¨è
ºèè¹è¦è©®è³è·µé¸é·éééé®®ååæ¼¸ç¶å
¨ç¦
ç¹
è³ç³åå¡å²¨æªæ¾æ½æ¥çççç¤ç¥ç§ç²ç´ çµè訴é»é¡é¼ å§åµåå¢ååªå£®
å¥ç½å®å±¤åæ£æ³æææ¿æ»ææ©æ¹å·£æ§æ§½æ¼ç¥äºç©ç¸çªç³ç·ç¶è¡èèè¬
è¼è»è£
èµ°ééééé¨å墿èèµè´é ä¿å´å峿¯æææ¸¬è¶³éä¿å±è³æ
ç¶åè¢å
¶æåå«å°ææéä»å¤å¤ªæ±°è©å¾å å¦¥æ°ææèµæ¥éé§é¨¨ä½å 対
è岱帯å¾
æ æ
æ´æ¿æ³°æ»èè
¿èè¢è²¸éé®éé»é¯ä»£å°å¤§ç¬¬éé¡é·¹æ»ç§å
åå®
ææææ²¢æ¿¯ç¢è¨é¸æ¿è«¾è¸å§è¸åªå©ä½é辰奪è±å·½ç«ªè¾¿æ£è°·ç¸é±æ¨½
誰丹åå妿
æ¢æ¦ææ·¡æ¹çç端箪綻è½èèèªéå£å£å¼¾æææªæ®µç·è«
å¤ç¥å°å¼æ¥æºæ± ç´ç¨ç½®è´èé
馳ç¯ç竹çèéç§©çªè¶å«¡çä¸ä»²å®å¿ æ½
æ¼æ±æ³¨è«è¡·è¨»é
é³é§æ¨ç¦çªè§è貯ä¸å
åå寵å¸å¸³åºå¼å¼µå½«å¾´æ²ææ¢
ææ½®ççºçºè´è¹è
¸è¶èª¿è«è¶
è·³éé·é é³¥å
æç´ææ²çè³é®é³æ´¥å¢æ¤æ§
追éçé塿 æ´æ§»ä½æ¼¬æè¾»è¦ç¶´é椿潰åªå£·å¬¬ç´¬çªåé£é¶´äºä½ååµå
è²åå ¤å®å¸åºåºå»·å¼ææµæºææ¢¯æ±ç¢ç¦ç¨ç· èè¨è«¦è¹éé¸éé鼿³¥æ
æ¢æµæ»´çç¬é©é溺å²å¾¹æ¤è½è¿éå
¸å¡«å¤©å±åºæ·»çºç貼転é¡ç¹ä¼æ®¿æ¾±ç°
é»å
åå µå¡å¦¬å± å¾æææ¸¡ç»èè³éé½éç ¥ç ºåªåº¦å奴æåå
å¬ååå
å¡å¡å¥å®å³¶å¶æ¼æææ±æ¡æ¢¼æ£çæ·æ¹¯æ¶ç¯çå½ç祷çççç³çµ±å°è£è©
è¤è¨è¬è±è¸éééé¶é 騰éåååå å°æ§ææ´ç³ç«¥è´èéé
å³ é´å¿å¾
å¾³æ¶ç¹ç£ç¦¿ç¯¤æ¯ç¬èªæ æ©¡å¸çªæ¤´å±é³¶è«å¯
é
çå¸å±¯ææ¦æ²è±éé åæ
éå¥é£å
ä¹åªèè¬çæºé楢馴ç¸ç·åæ¥ è»é£æ±äºå°¼å¼è¿©åè³èè¹å»¿æ¥
ä¹³å
¥å¦å°¿é®ä»»å¦å¿èªæ¿¡ç¦°ç¥¢å¯§è±ç«ç±å¹´å¿µæ»æçç²ä¹å»¼ä¹å墿©æ¿ç´
è½è³è¿è¾²è¦è¤å·´ææè¦æ·æ³¢æ´¾ç¶ç ´å©ç½µèé¦¬ä¿³å»ææææ¯ççèèºè¼©
é
åå¹åªæ¢
楳ç
¤ç½è²·å£²è³ éªéè¿ç§¤ç§è©ä¼¯å¥åæææ³ç½ç®ç²è¶èè¿«æ
æ¼ çç¸è«é§éº¦å½ç®±ç¡²ç®¸èçæ«¨å¹¡èçç å
«é¢æºçºé髪ä¼ç½°æçé¥é³©åº
å¡è¤é¼ä¼´å¤ååå叿¬ææ¿æ°¾æ±çç¯ççç¹è¬è©è²©ç¯éç
©é é£¯æ½æ©çª
ç¤ç£èè®åªåå¦å¦åºå½¼æ²ææ¹æ«ææ¯æ³ç²ç®ç¢ç§ç·ç½·è¥è¢«èª¹è²»é¿éé£
æ¨ç°¸åå°¾å¾®ææ¯çµçç¾é¼»æç¨å¹çé«å½¦èè±èå¼¼å¿
ç¢ç鼿¡§å§«åªç´ç¾
è¬¬ä¿µå½ªæ¨æ°·æ¼ç¢ç¥¨è¡¨è©è±¹å»æç
ç§èé¨é²èèé°åå½¬ææµçè²§è³é »æ
ç¶ä¸ä»å 夫婦å¯å¨å¸åºææ¶æ·æ§æ®æµ®ç¶ç¬¦è
èèèè² è³¦èµ´ééä¾®æ«æ¦
èè¡èªé¨å°æ¥é¢¨èºèä¼å¯å¾©å¹
æç¦è
¹è¤è¦æ·µå¼ææ²¸ä»ç©é®åå»å´å¢³æ¤
æ®ç奮ç²ç³ç´é°æèä¸ä½µå
µå¡å¹£å¹³å¼æä¸¦è½ééç±³é å»å£ç碧å¥ç¥è
ç®åå¤çç¯ç·¨è¾ºè¿é便å娩å¼éä¿èéªåææ©ç«è£è¼ç©å墿
ææ®æ¯
ç°¿è©å£ä¿¸å
åå ±å¥å®å³°å³¯å´©åºæ±æ§æ¾æ¹ææ³æ³¡ç¹ç ²ç¸«èè³èè¬èè¤è¨ª
è±é¦é飽鳳鵬ä¹äº¡ååå妨帽å¿å¿æ¿æ´æææ£åç´¡èªè¨è¬è²è²¿é¾é²å
é ¬åååå¢¨æ²æ´ç§ç¦ç©é¦å没æ®å å¹å¥æ¬ç¿»å¡çæ©ç£¨é麻åå¦¹æ§ææ¯
婿§å¹èæé®ªæ¾é±æ¡äº¦ä¿£åæ¹æ«æ²«è¿ä¾ç¹éº¿ä¸æ
¢æºæ¼«è峿ªé
å·³ç®å²¬
å¯èæ¹èç¨èå¦ç²æ°ç å夢ç¡ççé§éµ¡æ¤å©¿å¨å¥å彿çè¿·é鳴姪ç
æ»
å
æ£ç¶¿ç·¬é¢éººæ¸æ¨¡èå¦åæ¯çç²ç¶²èè岿¨é»ç®æ¢å¿é¤
å°¤æ»ç±¾è²°å
æ¶ç´éåä¹å¶å¤çºè¶éå¼¥ç¢åå½¹ç´è¬è¨³èºéæ³è®éæææ²¹çè«è¼¸å¯ä½
åªååå®¥å¹½æ æææææ¹§æ¶ç¶ç·ç±ç¥è£èªéééµéèå¤äºä½ä¸èªè¼¿é
åå¹¼å¦å®¹åº¸ææºæææ¥æ§æ´æº¶çç¨çª¯ç¾èèèè¦è¬¡è¸é¥é½é¤æ
¾ææ¬²æ²
æµ´ç¿ç¿¼æ·ç¾
èºè£¸æ¥è±é ¼é·æ´çµ¡è½é
ªä¹±åµåµæ¬æ¿«èè覧å©åå±¥ææ¢¨çç
ç¢è£è£¡éé¢é¸å¾çç«èæ ç¥åæµæºççç¡«ç²éç«é¾ä¾¶æ
®æ
èäºäº®å両
åå¯®ææ¢æ¶¼çççç¨ç³§è¯è«é¼ééµé åç·å«åææ·çç³è¨è¼ªé£é±éºç
塿¶ç´¯é¡ä»¤ä¼¶ä¾å·å±å¶ºæç²ç¤¼èé´é·é¶ééºé½¢æ¦æ´åå£çè£å»æææ¼£
ç
簾練è¯è®é£é¬å靿«çè³è·¯é²å´å©å»å¼ææ¥¼æ¦æµªæ¼ç¢ç¼ç¯èè¾èé
å
éºç¦èé²è«åå話æªè³èææ é·²äºäºé°è©«èè¨æ¤æ¹¾ç¢è
å¼ä¸ä¸ä¸ªä¸±
丶丼丿ä¹ä¹ä¹äºäº
豫äºèå¼äºäºäºäº 亢亰亳亶ä»ä»ä»ä»ä»ä»ä»ä»ä»ä»·
ä¼ä½ä¼°ä½ä½ä½ä½ä½¶ä¾ä¾ä¾ä½»ä½©ä½°ä¾ä½¯ä¾ä¾åä¿ä¿ä¿ä¿ä¿ä¿ä¿ä¿ä¿¤ä¿¥å
å¨ååªå¥å
ä¼ä¿¶å¡å©å¬ä¿¾ä¿¯ååååæåååååå¬å¸ååå
å´å²å
åå³åååå¥åå£å®å¹åµåååååååå¡åºå·å¼å»å¿å
å
å
å
å
¢ç«¸
å
©å
ªå
®ååååååååååå¤å¦å¢å©åªå«å³å±å²å°åµå½å
ååå è
å©åå°åµå¾ååååå§åªå®å³å¹åååååååªå´å©å³å¿å½åååå±
åå辨辧å¬åå¼åµååååå£å¦é£å å³åµå¸å¹ååç¸åååååå£å¯
å±å³å¸ååå
ä¸ååååå©å®å¤å»å·ååå å¦å¥å®å°å¶åç°éåæ¼ç®
å®å¨ååºåå½åå¬åå¼å®å¶å©ååååµååå±å·å°åå»åå¶åååå
å¢å¸å¥å¬ååå¨å«åå¤å¾å¼åå¥å¦ååå½å®ååºå¢å¹åå£åå®åå
å
åå¸å³åååå¯ååå»å¾ååå®å¼åå©åå¨åå
åååå¤ååå·åå¾
å½åå¹ååçå´å¶å²å¸å«å¤å¯å¬åªåååå ååå¥å®å¶å´åå¼ååå
åååååå®å¹åå¿ååååååååååå¦å·å¸åå»ååå©ååå¡
å¿ååå å³å¤åªå°åååååå åå£å å å å¡²å ¡å¡¢å¡å¡°æ¯å¡å ½å¡¹å¢
墹
å¢å¢«å¢ºå£å¢»å¢¸å¢®å£
å£å£å£å£å£å£¥å£å£¤å£å£¯å£ºå£¹å£»å£¼å£½å¤å¤å¤å¤æ¢¦å¤¥å¤¬
å¤å¤²å¤¸å¤¾ç«å¥å¥å¥å¥å¥å¥¢å¥ 奧奬奩奸å¦å¦ä½ä¾«å¦£å¦²å§å§¨å§å¦å§å§å¨¥å¨
å¨å¨å¨å¨å©å©¬å©å¨µå¨¶å©¢å©ªåªåª¼åª¾å«å«åª½å«£å«å«¦å«©å«å«ºå«»å¬å¬å¬å¬²å«å¬ª
嬶嬾åå
åååååå¥å©å°å³åµå¸æåºå®å®å®¦å®¸å¯å¯å¯å¯å¯å¯¤å¯¦å¯¢å¯
寥寫寰寶寳å°
å°å°å°å°å° 尢尨尸尹å±å±å±å±å±å±å±å±¬å±®ä¹¢å±¶å±¹å²å²å²
å¦å²«å²»å²¶å²¼å²·å³
å²¾å³å³å³©å³½å³ºå³å¶å³ªå´å´å´åµå´å´å´å´å´¢å´å´å´åµåµ
åµåµåµ¬åµ³åµ¶å¶å¶å¶å¶¢å¶å¶¬å¶®å¶½å¶å¶·å¶¼å·å·å·å·å·å·å·«å·²å·µå¸å¸å¸å¸å¸
帶帷å¹å¹å¹å¹å¹å¹å¹å¹¢å¹¤å¹å¹µå¹¶å¹ºéº¼å¹¿åº å»å»å»å»å»å»å»£å»å»å»å»¢å»¡
廨廩廬廱廳廰廴廸廾å¼å¼å½å½å¼å¼å¼å¼©å¼å¼¸å½å½å½å½å¼¯å½å½å½å½å½¡å½
彳彷å¾å¾å½¿å¾å¾å¾å¾å¾å¾å¾å¾ 徨å¾å¾¼å¿å¿»å¿¤å¿¸å¿±å¿æ³å¿¿æ¡æ æææ©æ
æ±æææ«æ¦ææºæææªæ·æææææ£ææ¤ææ¬æ«ææææ§æææææ
æææ§ææ¡æ¸æ ææ´å¿°æ½ææµææ
æææ¶æ·ææ´æºææ¡æ»æ±æææ
æ¾
æ¨æ§æ
æ¿æ¼æ¬æ´æ½æ
æ
æ
³æ
·æ
æ
æ
æ
«æ
´æ
¯æ
¥æ
±æ
æ
æ
æ
µææææ¬ææ
æææ«æ®ææææ·ææææºæç½¹ææ¦æ£æ¶æºæ´æ¿æ½æ¼æ¾ææææææ
æææ¡æªæ®æ°æ²æ³ææææ£ææ æ¨æ¼æææ¾æææææææææ»ææ¿
ææææææææææææ®æ±æ§æææ¯æµææ¾æææææææ«æ¶æ£æ
æææµæ«æ©æ¾æ©æææ£æææ¶æææ´æææ¦æ¶æææ¨ææ§æ¯æ¶ææªæ
ææ¥æ©ææ¼æææ
ææ»æææ±æ§èæ æ¡æ¬æ£æ¯æ¬æ¶æ´æ²æºææ½æææ
æ¤æ£æ«æ´æµæ·æ¶æ¸çææææææææ²æ¸ææè®æææ«æ·æææææ
ææææ æ¡æ±æ²æææ»æ³æµæ¶æ´ææææææææ¤æ§æ¨ææ¢æ°æææ
ææææææ¹ææ¾æ¼ææ¸æææ æ¿æ¦æ©æ°æµæ·ææææ¦æ§é¸æ®æ¿æ¶æ
æ¸æ·æææ ææ£æ¤ææ°æ©æ¼æªæææ¦æ¡æ
æ·æ¯æ´æ¬æ³æ©æ¸æ¤æææ¢æ®
æ¹æææ§æªæ æ¡æ ©æ¡æ¡æ ²æ¡æ¢³æ «æ¡æ¡£æ¡·æ¡¿æ¢æ¢æ¢æ¢æ¢æ¢æ¢æª®æ¢¹æ¡´æ¢µæ¢
æ¢ºæ¤æ¢æ¡¾æ¤æ£æ¤æ£æ¤¢æ¤¦æ£¡æ¤æ£æ£æ£§æ£æ¤¶æ¤æ¤æ£æ££æ¤¥æ£¹æ£ æ£¯æ¤¨æ¤ªæ¤æ¤£æ¤¡
æ£æ¥¹æ¥·æ¥æ¥¸æ¥«æ¥æ¥¾æ¥®æ¤¹æ¥´æ¤½æ¥æ¤°æ¥¡æ¥æ¥æ¦æ¥ªæ¦²æ¦®æ§æ¦¿æ§æ§æ¦¾æ§å¯¨æ§æ§
æ¦»æ§æ¦§æ¨®æ¦æ¦ æ¦æ¦æ¦´æ§æ§¨æ¨æ¨æ§¿æ¬æ§¹æ§²æ§§æ¨
æ¦±æ¨æ§æ¨æ§«æ¨æ¨æ«æ¨£æ¨æ©
æ¨æ©²æ¨¶æ©¸æ©æ©¢æ©æ©¦æ©æ¨¸æ¨¢æªæªæª æªæª¢æª£æªèæª»æ«æ«æª¸æª³æª¬æ«æ«æ«æªªæ«
櫪櫻æ¬
èæ«ºæ¬æ¬é¬±æ¬æ¬¸æ¬·çæ¬¹é£®æææææææææ¡æ¸æ¹æ¿æ®æ®æ®æ®
æ®æ®æ®æ®¤æ®ªæ®«æ®¯æ®²æ®±æ®³æ®·æ®¼æ¯æ¯æ¯æ¯æ¯¬æ¯«æ¯³æ¯¯éº¾æ°æ°æ°æ°æ°¤æ°£æ±æ±æ±¢
æ±ªæ²æ²æ²æ²æ²æ±¾æ±¨æ±³æ²æ²æ³æ³±æ³æ²½æ³æ³
æ³æ²®æ²±æ²¾æ²ºæ³æ³¯æ³æ³ªæ´è¡æ´¶æ´«
æ´½æ´¸æ´æ´µæ´³æ´æ´æµ£æ¶æµ¤æµæµ¹æµæ¶æ¶æ¿¤æ¶
æ·¹æ¸æ¸æ¶µæ·æ·¦æ¶¸æ·æ·¬æ·æ·æ·¨æ·
æ·
æ·ºæ·æ·¤æ·æ·ªæ·®æ¸æ¹®æ¸®æ¸æ¹²æ¹æ¸¾æ¸£æ¹«æ¸«æ¹¶æ¹æ¸æ¹æ¸ºæ¹æ¸¤æ»¿æ¸æ¸¸æºæºªæº
æ»æº·æ»æº½æº¯æ»æº²æ»æ»æºæº¥æ»æºæ½æ¼çæ»¬æ»¸æ»¾æ¼¿æ»²æ¼±æ»¯æ¼²æ»æ¼¾æ¼æ»·æ¾æ½º
æ½¸æ¾æ¾æ½¯æ½æ¿³æ½æ¾æ½¼æ½æ¾æ¾æ¿æ½¦æ¾³æ¾£æ¾¡æ¾¤æ¾¹æ¿æ¾ªæ¿æ¿æ¿¬æ¿æ¿æ¿±æ¿®æ¿ç
çæ¿ºçççæ¿¾ççæ½´çççç°ç¾ç²çç£ççç¯ç±ç¬ç¸ç³ç®ççççç
ç½ççç
¥ç
çç
¦ç
¢ç
ç
ç
¬çç»ççç¨ç¬çç¹ç¾ççççç ç¬ç§çµç¼ç¹
ç¿çççç¨çç¬ç°ç²ç»ç¼ç¿ççççç´ç¾çççççç¢ç§ç¹ç²ççç
ççç¢ç ç¡ç¹ç·åçççççç´ç¯ç©ç¥ç¾ççé»ççªç¨ç°ç¸çµç»çºç
ç³çç»çç¥ç®çç¢ç
ç¯ç¥ç¸ç²çºçç¿ççççç©ç°ç£çªç¶ç¾ççç§ç
ççç±ç ç£ç§ç©ç®ç²ç°ç±ç¸ç·ççç
ççççççç¦ç¬ç¼ççççç
ççç©ç¤ç§ç«çç¸ç¶ççç´ççççççç¥ç£çç³ççµç½ç¸ç¼ç±çç
ççç£çç¾ç¿ç¼çç°çºç²ç³ççççç§ç ç¡ç¢ç¤ç´ç°ç»çççççç¡
ç¢ç¨ç©çªç§ç¬ç°ç²ç¶ç¸ç¼çççççççççç°ç´ç¸ç¹çºççççç
ç¡ç¥ç§çªè¯ç»çççç©ç¤çç¥ç¦çç·ç¸ççç¨ç«çç¥ç¿ç¾ç¹çççç
çç°ç¶ç¹ç¿ç¼ç½ç»çççççç£ç®ç¼ç ç 礦ç 礪ç¡
ç¢ç¡´ç¢ç¡¼ç¢ç¢ç¢£ç¢µ
碪碯ç£ç£ç£ç£ç¢¾ç¢¼ç£
ç£ç£¬ç£§ç£ç£½ç£´ç¤ç¤ç¤ç¤ç¤¬ç¤«ç¥ç¥ ç¥ç¥ç¥ç¥ç¥ç¥ºç¥¿
ç¦ç¦ç¦§é½ç¦ªç¦®ç¦³ç¦¹ç¦ºç§ç§ç§§ç§¬ç§¡ç§£ç¨ç¨ç¨ç¨ç¨ ç¨ç¦ç¨±ç¨»ç¨¾ç¨·ç©ç©ç©ç©¡
穢穩é¾ç©°ç©¹ç©½çªçªçªçªçªçª©ç«çª°çª¶ç«
ç«çª¿éç«ç«ç«ç«ç«ç«ç«ç«ç«ç«¡ç«¢
竦ç«ç«°ç¬ç¬ç¬ç¬ç¬³ç¬ç¬ç¬ç¬µç¬¨ç¬¶ççºç¬çç¬çç
çµç¥ç´ç§ç°ç±ç¬ç®ç®
ç®ç®ç®ç®ç®ç®ç®ç®çç®ç¯ç¯ç¯ç¯ç®´ç¯ç¯ç¯©ç°ç°ç¯¦ç¯¥ç± ç°ç°ç°ç¯³ç¯·ç°ç°
篶簣簧簪ç°ç°·ç°«ç°½ç±ç±ç±ç±ç±ç±ç±ç±ç±¤ç±ç±¥ç±¬ç±µç²ç²ç²¤ç²ç²¢ç²«ç²¡ç²¨ç²³
粲粱粮粹粽ç³ç³
ç³ç³ç³ç³ç³¢é¬»ç³¯ç³²ç³´ç³¶ç³ºç´ç´ç´ç´ç´çµ
çµç´®ç´²ç´¿ç´µçµ
çµ³çµçµçµ²çµ¨çµ®çµçµ£ç¶ç¶çµç¶çµ½ç¶ç¶ºç¶®ç¶£ç¶µç·ç¶½ç¶«ç¸½ç¶¢ç¶¯ç·ç¶¸ç¶ç¶°ç·ç·
ç·¤ç·ç·»ç·²ç·¡ç¸
ç¸ç¸£ç¸¡ç¸ç¸±ç¸ç¸ç¸ç¸¢ç¹ç¹¦ç¸»ç¸µç¸¹ç¹ç¸·ç¸²ç¸ºç¹§ç¹ç¹ç¹ç¹ç¹
繹繪繩繼繻çºç·ç¹½è¾®ç¹¿çºçºçºçºçºçºçºçºçºçºçºç¼¸ç¼ºç½
ç½ç½ç½ç½ç½ç½
ç½ç½ç½ç½ 罨罩罧罸ç¾ç¾ç¾ç¾ç¾ç¾ç¾ç¾ç¾ç¾ç¾£ç¾¯ç¾²ç¾¹ç¾®ç¾¶ç¾¸è±ç¿
ç¿ç¿ç¿
ç¿ç¿¡ç¿¦ç¿©ç¿³ç¿¹é£èèèèèèèè¡è¨è¿è»èèèèèèè¢è¨è³è²è°è¶
è¹è½è¿èèè
èèèèåè¬èè¥èèèèèèè¯è±èè©è£è¯è
éè
è¾
è
è
è¼è
±è
®è
¥è
¦è
´èèèèèè èè¤è£è
èè©è°èµè¾è¸è½èèèºèè
èèèèèèè è§èºè»è¾èèè
èèèèèè©è«è¸è³èèèèèèè¤
è¢è¨èªè«è®è±è·è¸è¾èèè«èè»è¬è¡è£èèè´è³èºèèè»è¹èèèè
èèµè´èè²è±èè¹èè
è¯è«èèè
èèªèè¢èè£èèèè¼èµè³èµè è
è¨è´èè«èè½èèèèè·èè è²èè¢è è½è¸èè»èèªè¼èèè·è«èè®
èè©èè¬è¯è¹èµèè¢è¹è¿èèèè»èèèèèè¡è¡è¿è´èèè¬èèè
è¼èè£èèèèèèèè¤èèèè¨èèèèªèèè·è¾èèèºèè¹èè
èè¥èè¹èèèè¾èºèè¢èè°è¿èä¹èèè§è±èè£è©èªèèè¶è¯èè
è°èè £è«èèè©è¬èèè¯èèèèèè»èèèè¹èè´è¿è·è»è¥è©èè
èè¸èèè´èè¨è®èèè£èªè
è¢èèè¯èè½èèéè«èè³èèè»è¯è²
è è è è¾è¶è·è èè è è è ¢è ¡è ±è ¶è ¹è §è »è¡è¡è¡è¡è¡è¡¢è¡«è¢è¡¾è¢è¡µè¡½
袵衲è¢è¢è¢è¢®è¢è¢¢è¢è¢¤è¢°è¢¿è¢±è£è£è£è£è£è£è£¹è¤è£¼è£´è£¨è£²è¤è¤è¤è¤è¥
è¤è¤¥è¤ªè¤«è¥è¥è¤»è¤¶è¤¸è¥è¤è¥ è¥è¥¦è¥¤è¥è¥ªè¥¯è¥´è¥·è¥¾è¦è¦è¦è¦è¦è¦¡è¦©è¦¦è¦¬
覯覲覺覽覿è§è§è§è§è§§è§´è§¸è¨è¨è¨è¨è¨è¨è¨¥è¨¶è©è©è©è©è©è©¼è©è©¬è©¢èª
èªèªèª¨èª¡èªèª¥èª¦èªèª£è«è«è«è«è««è«³è«§è«¤è«±è¬è« 諢諷è«è«è¬è¬è¬è«¡è¬è¬
è¬è¬ 謳é«è¬¦è¬«è¬¾è¬¨èèèèèèèèè«èè¬è¯è´è½è®è®è®è®è®è®è®è®
è°ºè±è°¿è±è±è±è±è±è±¢è±¬è±¸è±ºè²è²è²
è²è²è²è²è±¼è²æè²è²ªè²½è²²è²³è²®è²¶è³
è³è³¤è³£è³è³½è³ºè³»è´è´
è´è´è´è´è´é½è´è³è´è´èµ§èµèµ±èµ³è¶è¶è·è¶¾è¶ºè·è·
è·è·è·è·è·ªè·«è·è·£è·¼è¸è¸è·¿è¸è¸è¸è¸è¹è¸µè¸°è¸´è¹è¹è¹è¹è¹è¹è¹è¹¤è¹ 踪
è¹£è¹è¹¶è¹²è¹¼èºèºèº
èºèºèºèºèºèºèºèºªèº¡èº¬èº°è»èº±èº¾è»
è»è»è»è»£è»¼è»»è»«
軾è¼è¼
è¼è¼è¼è¼è¼è¼è¼è¼è¼¦è¼³è¼»è¼¹è½
è½è¼¾è½è½è½è½è½è½è½¢è½£è½¤è¾è¾è¾£
è¾è¾¯è¾·è¿è¿¥è¿¢è¿ªè¿¯éè¿´é
迹迺ééé¡ééééé§é¶éµé¹è¿¸ééééé
éé¾éééé¨é¯é¶é¨é²éé½éééééé¨é¯é±éµé¢é¤æééééé²é°
é
é
é
é
£é
¥é
©é
³é
²éééé¢é«é¯éªéµé´éºéééééééé¡éé¼éµé¶
éé¿éé¬ééééé
éé¤ééé¿ééééééééé¹é·é©ééºéé®é
é¢éé£éºéµé»éé é¼é®éé°é¬ééé¹ééé¨é¥éééééé¤éééé
ééé¶é«éµé¡éºééééé é¢ééªé©é°éµé·é½éé¼é¾éé¿ééééé
ééé é¨é§éé¼é»é¹é¾éæ¿¶éééééééé¡é¥é¢é¡é¨é®é¯éééé
é·ééééé¦é²é¬éééééªé§é±é²é°é´é¶é¸é¹ééééè¥éééé¹
éééééééééé¤éªé°é¹é½é¾ééééééé é¤é¦é¨åé«é±é¹é
é¼ééºéééééé¨é¦é£é³é´ééééééé½é²ç«é¶éµé é é ¸é ¤é ¡é ·
é ½é¡é¡é¡é¡«é¡¯é¡°é¡±é¡´é¡³é¢ªé¢¯é¢±é¢¶é£é£é£é£©é£«é¤é¤é¤é¤é¤é¤¡é¤é¤é¤¤é¤ 餬
餮餽餾é¥é¥é¥
é¥é¥é¥é¥é¥é¥é¦é¦é¦¥é¦é¦®é¦¼é§é§é§é§é§é§é§®é§±é§²é§»é§¸é¨
é¨é¨
é§¢é¨é¨«é¨·é©
é©é©é©é¨¾é©é©é©é©é©é©¢é©¥é©¤é©©é©«é©ªéªéª°éª¼é«é«é«é«é«
é«é«é«¢é«£é«¦é«¯é««é«®é«´é«±é«·é«»é¬é¬é¬é¬é¬¢é¬£é¬¥é¬§é¬¨é¬©é¬ªé¬®é¬¯é¬²éééé
éééé´é®é®é®é®é®é®é® 鮨鮴é¯é¯é®¹é¯é¯é¯é¯é¯£é¯¢é¯¤é¯é¯¡é°ºé¯²é¯±é¯°é°
é°é°é°é°é°é°é°é°é°é°®é°é°¥é°¤é°¡é°°é±é°²é±é°¾é±é± 鱧鱶鱸鳧鳬鳰é´é´é³«
é´é´é´ªé´¦é¶¯é´£é´éµé´é´éµé´¿é´¾éµéµéµéµéµ¤éµéµéµéµ²é¶é¶é¶«éµ¯éµºé¶é¶¤é¶©
é¶²é·é·é¶»é¶¸é¶ºé·é·é·é·é·é·¸é·¦é·é·¯é·½é¸é¸é¸é¹µé¹¹é¹½éºéºéºéºéºéºéºéº
麥麩麸麪éºé¡é»é»é»é»é»é»é»é»é» 黥黨黯黴黶黷黹黻黼黽é¼é¼ç·é¼é¼¡
鼬鼾é½é½é½é½£é½é½ 齡齦齧齬齪齷齲齶é¾é¾é¾ å ¯æ§éç¤åç
EOF
my %JISkanji;
my $n = 10000;
for($JISkanji =~ /$Char/go){
next if /\s/;
$JISkanji{$_} = [++$n];
}
my %Order = makeorder("",
' ', 'ã',
[[[['ã', '、']]]],
[[[['ã', '。']]]],
[[[[',', 'ï¼']]]],
[[[['.', 'ï¼']]]],
[[[['ã»', 'ï½¥']]]],
[[[[':', 'ï¼']]]],
[[[[';', 'ï¼']]]],
[[[['?', 'ï¼']]]],
[[[['!', 'ï¼']]]],
[[[['´' ]]]], # ACUTE ACCENT
[[[['`', 'ï½']]]], # GRAVE ACCENT
[[[['¨' ]]]], # DIAERESIS
[[[['^', 'ï¼¾']]]], # CIRCUMFLEX ACCENT
[[[["\xc2\xaf", "\xef\xbf\xa3"]]]], #MACRON
"\xE2\x80\xBE", # OVERLINE
[[[['_', '_']]]],
"\xe2\x80\x95", # HORIZONTAL BAR
"\xe2\x80\x94", # EM DASH
"\xe2\x80\x93", # EN DASH
'â',
[[[['/', 'ï¼']]]],
[[[["\x5C", "\xef\xbc\xbc"]]]], # SOLIDUS
"\xe3\x80\x9c", # WAVE DASH
[[[["\x7E", "\xEF\xBD\x9E"]]]], # TILDE
"\xe2\x80\x96", # DOUBLE VERTICAL LINE
"\xe2\x88\xa5", # PARALLEL TO
[[[['|', 'ï½']]]],
qw/⦠⥠/,
qw/â â/,
[[[["'", 'ï¼']]]], # APOSTROPHE
qw/â â/,
[[[['"', 'ï¼']]]], # QUOTATION MARK
[[[['(', 'ï¼']]]],
[[[[')', 'ï¼']]]],
qw/ã ã/,
[[[['[', 'ï¼»']]]],
[[[[']', 'ï¼½']]]],
[[[['{', 'ï½']]]],
[[[['}', 'ï½']]]],
qw/ã ã ã ã /,
[[[['ã', 'ï½¢']]]],
[[[['ã', 'ï½£']]]],
qw/ã ã ã ã /,
[[[['+', 'ï¼']]]],
[[[['-', "\xef\xbc\x8d"]]]], # HYPHEN-MINUS
"\xe2\x88\x92", # MINUS SIGN
qw/± à ÷ /,
[[[['=', 'ï¼']]]],
'â ',
[[[['<', 'ï¼']]]],
[[[['>', 'ï¼']]]],
qw/⦠⧠â ⪠⫠â â â â â ⫠⬠â ⥠â /,
qw/â¡ â½ â â â â â â ⪠⩠⧠⨠/,
[[[["\xc2\xac", "\xef\xbf\xa2"]]]], # NOT SIGN
qw/â â â â â´ âµ â â /,
[[[['#', 'ï¼']]]],
[[[['&', 'ï¼']]]],
[[[['*', 'ï¼']]]],
[[[['@', 'ï¼ ']]]],
qw/§ ¶ â» â â¡ /,
qw/â â
â â â â â â¡ â â³ â² â½ â¼ /,
qw/ã â â â â ⯠â ⪠/,
qw/° â² â³ â /,
[[[["\xc2\xa5", "\xef\xbf\xa5"]]]], # YEN SIGN
[[[['$', 'ï¼']]]],
[[[["\xc2\xa2", "\xef\xbf\xa0"]]]], # CENT SIGN
[[[["\xc2\xa3", "\xef\xbf\xa1"]]]], # POUND SIGN
[[[['%', 'ï¼
']]]],
'â°', 'â«',
[[[['0', 'ï¼']]]],
[[[['1', 'ï¼']]]],
[[[['2', 'ï¼']]]],
[[[['3', 'ï¼']]]],
[[[['4', 'ï¼']]]],
[[[['5', 'ï¼']]]],
[[[['6', 'ï¼']]]],
[[[['7', 'ï¼']]]],
[[[['8', 'ï¼']]]],
[[[['9', 'ï¼']]]],
qw/α β γ δ ε ζ η θ ι κ λ μ ν ξ ο Ï Ï Ï Ï Ï
Ï Ï Ï Ï/,
qw/ΠΠΠΠΠΠΠΠΠΠΠΠΠΠΠΠΡ Σ Τ Υ Φ Χ Ψ Ω/,
qw/а б в г д е Ñ Ð¶ з и й к л м н о п/,
qw/Ñ Ñ Ñ Ñ Ñ Ñ
Ñ Ñ Ñ Ñ Ñ Ñ Ñ Ñ Ñ Ñ/,
qw/Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð/,
qw/РС Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь РЮ Я/,
[
[ [['a', 'ï½']], [['A', 'A']] ],
[ "\xc4\x81", "\xc4\x80" ],
[ "\xc3\xa2", "\xc3\x82" ],
],
[[ [['b', 'ï½']], [['B', 'ï¼¢']] ]],
[[ [['c', 'ï½']], [['C', 'ï¼£']] ]],
[[ [['d', 'ï½']], [['D', 'D']] ]],
[
[ [['e', 'ï½
']], [['E', 'ï¼¥']] ],
[ "\xc4\x93", "\xc4\x92" ],
[ "\xc3\xaa", "\xc3\x8a" ],
],
[[ [['f', 'ï½']], [['F', 'F']] ]],
[[ [['g', 'ï½']], [['G', 'ï¼§']] ]],
[[ [['h', 'ï½']], [['H', 'H']] ]],
[
[ [['i', 'ï½']], [['I', 'I']] ],
[ "\xc4\xab", "\xc4\xaa" ],
[ "\xc3\xae", "\xc3\x8e" ],
],
[[ [['j', 'ï½']], [['J', 'J']] ]],
[[ [['k', 'ï½']], [['K', 'K']] ]],
[[ [['l', 'ï½']], [['L', 'L']] ]],
[[ [['m', 'ï½']], [['M', 'ï¼']] ]],
[[ [['n', 'ï½']], [['N', 'ï¼®']] ]],
[
[ [['o', 'ï½']], [['O', 'O']] ],
[ "\xc5\x8d", "\xc5\x8c" ],
[ "\xc3\xb4", "\xc3\x94" ],
],
[[ [['p', 'ï½']], [['P', 'ï¼°']] ]],
[[ [['q', 'ï½']], [['Q', 'ï¼±']] ]],
[[ [['r', 'ï½']], [['R', 'ï¼²']] ]],
[[ [['s', 'ï½']], [['S', 'ï¼³']] ]],
[[ [['t', 'ï½']], [['T', 'ï¼´']] ]],
[
[ [['u', 'ï½']], [['U', 'ï¼µ']] ],
[ "\xc5\xab", "\xc5\xaa" ],
[ "\xc3\xbb", "\xc3\x9b" ],
],
[[ [['v', 'ï½']], [['V', 'ï¼¶']] ]],
[[ [['w', 'ï½']], [['W', 'ï¼·']] ]],
[[ [['x', 'ï½']], [['X', 'X']] ]],
[[ [['y', 'ï½']], [['Y', 'ï¼¹']] ]],
[[ [['z', 'ï½']], [['Z', 'Z']] ]],
[[
[[qw/ã¼ã¢ ï½°ï½±/]], ['ã', [qw/ã¡ ï½§/] ], [qw/ãã ã½ã¢/], ['ã', [qw/㢠ア/] ],
]],
[[
[[qw/ã¼ã¤ ï½°ï½²/]], ['ã', [qw/㣠ィ/] ], [qw/ãã ã½ã¤/], ['ã', [qw/㤠イ/] ],
]],
[
[
[[qw/ã¼ã¦ ï½°ï½³/]], ['ã
', [qw/㥠ゥ/] ], [qw/ãã ã½ã¦/], ['ã', [qw/㦠ウ/] ],
],
[ [qw/ã¾ã´ /], [ [qw/ã´ ï½³ï¾/] ] ],
],
[[
[[qw/ã¼ã¨ ï½°ï½´/]], ['ã', [qw/㧠ェ/] ], [qw/ãã ã½ã¨/], ['ã', [qw/㨠エ/] ],
]],
[[
[[qw/ã¼ãª ï½°ï½µ/]], ['ã', [qw/㩠ォ/] ], [qw/ãã ã½ãª/], ['ã', [qw/㪠オ/] ],
]],
[
[ [qw/ ãµ /], [qw/ãã ã½ã« /], ['ã', [qw/ã« ï½¶ /] ] ],
[ [qw/ãã ã¾ã¬ /], ['ã', [qw/㬠カï¾/] ] ],
],
[
[ [qw/ãã ã½ã /], ['ã', [qw/ã ï½· /] ] ],
[ [qw/ãã ã¾ã® /], ['ã', [qw/ã® ï½·ï¾/] ] ],
],
[
[ [qw/ãã ã½ã¯ /], ['ã', [qw/㯠ク /] ] ],
[ [qw/ãã ã¾ã° /], ['ã', [qw/㰠クï¾/] ] ],
],
[
[ [qw/ ã¶ /], [qw/ãã ã½ã± /], ['ã', [qw/ã± ï½¹ /] ] ],
[ [qw/ãã ã¾ã² /], ['ã', [qw/ã² ï½¹ï¾/] ] ],
],
[
[ [qw/ãã ã½ã³ /], ['ã', [qw/㳠コ /] ] ],
[ [qw/ãã ã¾ã´ /], ['ã', [qw/㴠コï¾/] ] ],
],
[
[ [qw/ãã ã½ãµ /], ['ã', [qw/ãµ ï½» /] ] ],
[ [qw/ãã ã¾ã¶ /], ['ã', [qw/ã¶ ï½»ï¾/] ] ],
],
[
[ [qw/ãã ã½ã· /], ['ã', [qw/ã· ï½¼ /] ] ],
[ [qw/ãã ã¾ã¸ /], ['ã', [qw/㸠シï¾/] ] ],
],
[
[ [qw/ãã ã½ã¹ /], ['ã', [qw/ã¹ ï½½ /] ] ],
[ [qw/ãã ã¾ãº /], ['ã', [qw/㺠スï¾/] ] ],
],
[
[ [qw/ãã ã½ã» /], ['ã', [qw/ã» ï½¾ /] ] ],
[ [qw/ãã ã¾ã¼ /], ['ã', [qw/ã¼ ï½¾ï¾/] ] ],
],
[
[ [qw/ãã ã½ã½ /], ['ã', [qw/㽠ソ /] ] ],
[ [qw/ãã ã¾ã¾ /], ['ã', [qw/㾠ソï¾/] ] ],
],
[
[ [qw/ãã ã½ã¿ /], ['ã', [qw/ã¿ ï¾ /] ] ],
[ [qw/ãã ã¾ã /], ['ã ', [qw/ã ï¾ï¾/] ] ],
],
[
[ [qw/ãã¡ ã½ã /], ['ã¡', [qw/ã ï¾ /] ] ],
[ [qw/ã㢠ã¾ã /], ['ã¢', [qw/ã ï¾ï¾/] ] ],
],
[
[ ['ã£', [qw/ã ッ /] ], [qw/ã㤠ã½ã /], ['ã¤', [qw/ã ï¾ /] ] ],
[ [qw/ã㥠ã¾ã
/], ['ã¥', [qw/ã
ï¾ï¾/] ] ],
],
[
[ [qw/ã㦠ã½ã /], ['ã¦', [qw/ã ï¾ /] ] ],
[ [qw/ãã§ ã¾ã /], ['ã§', [qw/ã ï¾ï¾/] ] ],
],
[
[ [qw/ã㨠ã½ã /], ['ã¨', [qw/ã ï¾ /] ] ],
[ [qw/ãã© ã¾ã /], ['ã©', [qw/ã ï¾ï¾/] ] ],
],
[ [ [qw/ã㪠ã½ã /], ['ãª', [qw/ã ï¾
/] ] ] ],
[ [ [qw/ãã« ã½ã /], ['ã«', [qw/ã ï¾ /] ] ] ],
[ [ [qw/ã㬠ã½ã /], ['ã¬', [qw/ã ï¾ /] ] ] ],
[ [ [qw/ãã ã½ã /], ['ã', [qw/ã ï¾ /] ] ] ],
[ [ [qw/ãã® ã½ã /], ['ã®', [qw/ã ï¾ /] ] ] ],
[
[ [qw/ã㯠ã½ã /], ['ã¯', [qw/ã ï¾ /] ] ],
[ [qw/ãã° ã¾ã /], ['ã°', [qw/ã ï¾ï¾/] ] ],
[ ['ã±', [qw/ã ï¾ï¾/] ] ],
],
[
[ [qw/ãã² ã½ã /], ['ã²', [qw/ã ï¾ /] ] ],
[ [qw/ãã³ ã¾ã /], ['ã³', [qw/ã ï¾ï¾/] ] ],
[ ['ã´', [qw/ã ï¾ï¾/] ] ],
],
[
[ [qw/ããµ ã½ã /], ['ãµ', [qw/ã ï¾ /] ] ],
[ [qw/ãã¶ ã¾ã /], ['ã¶', [qw/ã ï¾ï¾/] ] ],
[ ['ã·', [qw/ã ï¾ï¾/] ] ],
],
[
[ [qw/ã㸠ã½ã /], ['ã¸', [qw/ã ï¾ /] ] ],
[ [qw/ãã¹ ã¾ã /], ['ã¹', [qw/ã ï¾ï¾/] ] ],
[ ['ãº', [qw/ã ï¾ï¾/] ] ],
],
[
[ [qw/ãã» ã½ã /], ['ã»', [qw/ã ï¾ /] ] ],
[ [qw/ãã¼ ã¾ã /], ['ã¼', [qw/ã ï¾ï¾/] ] ],
[ ['ã½', [qw/ã ï¾ï¾/] ] ],
],
[ [ [qw/ãã¾ ã½ã /], ['ã¾', [qw/ã ï¾ /] ] ] ],
[ [ [qw/ãã¿ ã½ã /], ['ã¿', [qw/ã ï¾ /] ] ] ],
[ [ [qw/ãã ã½ã /], ['ã', [qw/ã ï¾ /] ] ] ],
[ [ [qw/ãã ã½ã¡ /], ['ã', [qw/ã¡ ï¾ /] ] ] ],
[ [ [qw/ãã ã½ã¢ /], ['ã', [qw/ã¢ ï¾ /] ] ] ],
[ [ ['ã', [qw/㣠ャ/] ], [qw/ãã ã½ã¤ /], ['ã', [qw/㤠ï¾/] ] ] ],
[ [ ['ã
', [qw/㥠ï½/] ], [qw/ãã ã½ã¦ /], ['ã', [qw/㦠ï¾/] ] ] ],
[ [ ['ã', [qw/ã§ ï½®/] ], [qw/ãã ã½ã¨ /], ['ã', [qw/㨠ï¾/] ] ] ],
[ [ [qw/ãã ã½ã© /], ['ã', [qw/ã© ï¾ /] ] ] ],
[ [ [qw/ãã ã½ãª /], ['ã', [qw/ãª ï¾ /] ] ] ],
[ [ [qw/ãã ã½ã« /], ['ã', [qw/ã« ï¾ /] ] ] ],
[ [ [qw/ãã ã½ã¬ /], ['ã', [qw/ã¬ ï¾ /] ] ] ],
[ [ [qw/ãã ã½ã /], ['ã', [qw/ã ï¾ /] ] ] ],
[ [ [qw/ã ã® /], [qw/ãã ã½ã¯ /], ['ã', [qw/ã¯ ï¾ /] ] ] ],
[ [ [qw/ãã ã½ã° /], [qw/ã ã° /] ] ],
[ [ [qw/ãã ã½ã± /], [qw/ã ã± /] ] ],
[ [ [qw/ãã ã½ã² /], ['ã', [qw/㲠ヲ /] ] ] ],
[[
[ [qw/ã¼ã³ ï½°ï¾/] ], [qw/ãã ã½ã³ /], ['ã', [qw/ã³ ï¾/] ],
]],
[ [[qw/ã ã½ /]], [[qw/ã ã¾ /]] ],
[[[['ã¼', 'ï½°']]]],
qw/ã ä» ã
ã ã /,
);
$Order{ 'ã' } = [0x80000000];
my %Iterate;
# $Iterate{ Replaced Char }{ Prev Char } = Replacing Char;
$Iterate{ 'ã¼' } = _hash(qw/
ã¢ã¡ã«ã¬ãµãµã¶ã¿ããããããã¤ã£ã©ã¯ã®ï½±ï½§ï½¶ï½¶ï¾ï½»ï½»ï¾ï¾ï¾ï¾ï¾
ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï½¬ï¾ï¾ãããããããã ãªã¯ã°ã±ã¾ããããã
ã¤ã£ãã®ã·ã¸ããããããããªã°ï½²ï½¨ï½·ï½·ï¾ï½¼ï½¼ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ããããããã¡ã¢ã«ã²ã³ã´ã¿ãã
ã¦ã´ã¥ã¯ã°ã¹ãºãã
ãããããã ã¦ã¥ã«ï½³ï½³ï¾ï½©ï½¸ï½¸ï¾ï½½ï½½ï¾ï¾ï¾ï¾ï½¯ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï½ï¾ãã
ããããã¤ã¥ã£ã¬ãµã¶ã·ããã
ã
ã¨ã§ã±ã²ã¶ã»ã¼ããããããã¡ã¬ã±ï½´ï½ªï½¹ï½¹ï¾ï½¾ï½¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ããããããã¦ã§ãã¸ã¹ãºããã
ãªã©ã³ã´ã½ã¾ããããããã¢ã¨ã§ãã²ï½µï½«ï½ºï½ºï¾ï½¿ï½¿ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï½®ï¾ï½¦ããããããã¨ã©ã®ã»ã¼ã½ããããã
ã³ï¾ã
/);
$Iterate{ 'ï½°' } = _hash(qw/
アァカカï¾ï½»ï½»ï¾ï¾ï¾ï¾ï¾
ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï½¬ï¾ï¾ãããããããã ãªã¯ã°ã±ã¾ãããããã¢ã¡ã«ã¬ãµãµã¶ã¿ããããããã¤ã£ã©ã¯ã®
イィキキï¾ï½¼ï½¼ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ããããããã¡ã¢ã«ã²ã³ã´ã¿ããã¤ã£ãã®ã·ã¸ããããããããªã°
ウウï¾ï½©ï½¸ï½¸ï¾ï½½ï½½ï¾ï¾ï¾ï¾ï½¯ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï½ï¾ãã
ããããã¤ã¥ã£ã¬ãµã¶ã·ããã
ãã¦ã´ã¥ã¯ã°ã¹ãºãã
ãããããã ã¦ã¥ã«
エェケケï¾ï½¾ï½¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ããããããã¦ã§ãã¸ã¹ãºãããã¨ã§ã±ã²ã¶ã»ã¼ããããããã¡ã¬ã±
オォココï¾ï½¿ï½¿ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï¾ï½®ï¾ï½¦ããããããã¨ã©ã®ã»ã¼ã½ããããããªã©ã³ã´ã½ã¾ããããããã¢ã¨ã§ãã²
ï¾ãã³
/);
$Iterate{ 'ã' } = _hash(qw/
ããã¢ã¡ï½±ï½§
ããã«ã¬ãµï½¶ï½¶ï¾
ãããµã¶ï½»ï½»ï¾
ãã ã¿ãï¾ï¾ï¾
ãªãï¾
ã¯ã°ã±ãããï¾ï¾ï¾ï¾ï¾
ã¾ãï¾
ããã¤ã£ï¾ï½¬
ãã©ï¾
ããã¯ã®ï¾
ããã¤ã£ï½²ï½¨
ãããã®ï½·ï½·ï¾
ããã·ã¸ï½¼ï½¼ï¾
ã¡ã¢ããï¾ï¾ï¾
ã«ãï¾
ã²ã³ã´ãããï¾ï¾ï¾ï¾ï¾
ã¿ãï¾
ããªï¾
ãã°
ãã
ã¦ã´ã¥ï½³ï½³ï¾ï½©
ããã¯ã°ï½¸ï½¸ï¾
ããã¹ãºï½½ï½½ï¾
ã¤ã¥ã£ãã
ãï¾ï¾ï¾ï½¯
ã¬ãï¾
ãµã¶ã·ãããï¾ï¾ï¾ï¾ï¾
ãã ï¾
ãã
ã¦ã¥ï¾ï½
ãã«ï¾
ããã¨ã§ï½´ï½ª
ããã±ã²ã¶ï½¹ï½¹ï¾
ããã»ã¼ï½¾ï½¾ï¾
ã¦ã§ããï¾ï¾ï¾
ããï¾
ã¸ã¹ãºãããï¾ï¾ï¾ï¾ï¾
ãã¡ï¾
ãã¬ï¾
ãã±
ãããªã©ï½µï½«
ããã³ã´ï½ºï½ºï¾
ããã½ã¾ï½¿ï½¿ï¾
ã¨ã©ããï¾ï¾ï¾
ã®ãï¾
ã»ã¼ã½ãããï¾ï¾ï¾ï¾ï¾
ãã¢ï¾
ããã¨ã§ï¾ï½®
ããï¾
ãã²ï½¦
ãã³ï¾
/);
$Iterate{ 'ã½' } = _hash(qw/
ã¢ã¡ããアァ
ã«ã¬ãµããï½¶ï½¶ï¾
ãµã¶ããササï¾
ã¿ããã ï¾ï¾ï¾
ããªï¾
ãããã¯ã°ã±ï¾ï¾ï¾ï¾ï¾
ãã¾ï¾
ã¤ã£ããï¾ï½¬
ã©ãï¾
ã¯ã®ããï¾
ã¤ã£ããイィ
ãã®ããï½·ï½·ï¾
ã·ã¸ããシシï¾
ããã¡ã¢ï¾ï¾ï¾
ãã«ï¾
ãããã²ã³ã´ï¾ï¾ï¾ï¾ï¾
ãã¿ï¾
ãªãï¾
ã°ã
ã¦ã´ã¥ãã
ウウï¾ï½©
ã¯ã°ããククï¾
ã¹ãºããススï¾
ãã
ãã¤ã¥ã£ï¾ï¾ï¾ï½¯
ãã¬ï¾
ããããµã¶ã·ï¾ï¾ï¾ï¾ï¾
ã ãï¾
ã¦ã¥ãã
ï¾ï½
ã«ãï¾
ã¨ã§ããエェ
ã±ã²ã¶ããケケï¾
ã»ã¼ããセセï¾
ããã¦ã§ï¾ï¾ï¾
ããï¾
ãããã¸ã¹ãºï¾ï¾ï¾ï¾ï¾
ã¡ãï¾
ã¬ãï¾
ã±ã
ãªã©ããオォ
ã³ã´ããココï¾
ã½ã¾ããソソï¾
ããã¨ã©ï¾ï¾ï¾
ãã®ï¾
ãããã»ã¼ã½ï¾ï¾ï¾ï¾ï¾
ã¢ãï¾
ã¨ã§ããï¾ï½®
ããï¾
ã²ãヲ
ã³ãï¾
/);
$Iterate{ 'ã' } = _hash(qw/
ããã«ã¬ãµï½¶ï½¶ï¾
ãããµã¶ï½»ï½»ï¾
ã ãã¿ãï¾ï¾ï¾
ã°ã¯ã±ãããï¾ï¾ï¾ï¾ï¾
ãããã®ï½·ï½·ï¾
ããã·ã¸ï½¼ï½¼ï¾
ã¢ã¡ããï¾ï¾ï¾
ã³ã²ã´ãããï¾ï¾ï¾ï¾ï¾
ããã¯ã°ï½¸ï½¸ï¾
ããã¹ãºï½½ï½½ï¾
ã¥ã¤ã£ãã
ãï¾ï¾ï¾ï½¯
ã¶ãµã·ãããï¾ï¾ï¾ï¾ï¾
ããã±ã²ã¶ï½¹ï½¹ï¾
ããã»ã¼ï½¾ï½¾ï¾
ã§ã¦ããï¾ï¾ï¾
ã¹ã¸ãºãããï¾ï¾ï¾ï¾ï¾
ããã³ã´ï½ºï½ºï¾
ããã½ã¾ï½¿ï½¿ï¾
ã©ã¨ããï¾ï¾ï¾
ã¼ã»ã½ãããï¾ï¾ï¾ï¾ï¾
/);
$Iterate{ 'ã¾' } = _hash(qw/
ã¬ã«ãµããï½¶ï½¶ï¾
ã¶ãµããササï¾
ãã¿ãã ï¾ï¾ï¾
ãããã¯ã°ã±ï¾ï¾ï¾ï¾ï¾
ã®ãããï½·ï½·ï¾
ã¸ã·ããシシï¾
ããã¡ã¢ï¾ï¾ï¾
ãããã²ã³ã´ï¾ï¾ï¾ï¾ï¾
ã´ã¦ã¥ãã
ウウï¾ï½©
ã°ã¯ããククï¾
ãºã¹ããススï¾
ã
ããã¤ã¥ã£ï¾ï¾ï¾ï½¯
ããããµã¶ã·ï¾ï¾ï¾ï¾ï¾
ã²ã±ã¶ããケケï¾
ã¼ã»ããセセï¾
ããã¦ã§ï¾ï¾ï¾
ãããã¸ã¹ãºï¾ï¾ï¾ï¾ï¾
ã´ã³ããココï¾
ã¾ã½ããソソï¾
ããã¨ã©ï¾ï¾ï¾
ãããã»ã¼ã½ï¾ï¾ï¾ï¾ï¾
/);
sub _hash{
my %hash;
for(@_){
my @d = m/$Char/go;
@hash{@d} = ($d[0]) x @d;
}
return \%hash;
}
sub makeorder{
my($ix, @ar, @rt);
$ix = shift || [];
@ar = @_;
push @$ix, 1;
for(@ar){
push @rt, ref $_ eq 'ARRAY' ? makeorder([@$ix], @$_) : ($_ => [@$ix]);
$ix->[-1]++;
}
return @rt;
};
sub karr {
my($self,$coderef,$kanji);
if(ref $_[0] eq $PACKAGE){
$self = shift;
$coderef = $self->{code};
$kanji = $self->{kanji};
}
if(ref $_[0] eq 'CODE'){ $coderef = shift }
$self = $coderef ? &$coderef(shift) : shift;
$kanji ||= shift || $Kanji;
my(@ret, $key);
my $prev = '';
if($self !~ m/^(?:$Char)*$/o){
carp $PACKAGE . " Malformed UTF-8 character";
}
for($self =~ m/$Char/go){
next unless $Order{$_} || $kanji > 1 && /^$CJK$/o;
if(defined $Iterate{$_} && defined $Iterate{$_}{$prev}){
$prev = $Iterate{$_}{$prev};
$key = $_.$prev;
}
else { $prev = $key = $_ }
push @ret,
$Order{$key} ? $Order{$key} :
$kanji == 2 ? $JISkanji{$key} :
$kanji == 3 ? [ unpack('N', "\0" x (4-length).$_) ] :
();
}
return @ret ? \@ret : [[0]];
}
sub kcmp {
my($i,$j,$n,$r);
my($a,$b,$self,$level);
if(ref $_[0] eq $PACKAGE){
$self = shift;
$level = $self->{level};
}
$a = shift;
$b = shift;
$level ||= shift || $Level;
$n = @$a > @$b ? @$a - 1 : @$b - 1;
for $i (0..$level-1){
for $j (0..$n){
$r = ((defined $a->[$j][$i] ? $a->[$j][$i] : 0)
<=> (defined $b->[$j][$i] ? $b->[$j][$i] : 0));
return $r if $r;
}
}
return 0;
}
sub jcmp {
my($self,$coderef,$level,$kanji);
if(ref $_[0] eq $PACKAGE){
$self = shift;
$coderef = $self->{code};
$level = $self->{level};
$kanji = $self->{kanji};
}
if(ref $_[0] eq 'CODE'){ $coderef = shift }
my $a = defined $coderef ? &$coderef($_[0]) : $_[0];
my $b = defined $coderef ? &$coderef($_[1]) : $_[1];
$level ||= $_[2] || $Level;
$kanji ||= $_[3] || $Kanji;
kcmp(karr($a, $kanji), karr($b, $kanji), $level);
}
sub jsort {
my($self,$coderef,$level,$kanji);
if(ref $_[0] eq $PACKAGE){
$self = shift;
$coderef = $self->{code};
$level = $self->{level};
$kanji = $self->{kanji};
}
if(ref $_[0] eq 'CODE'){ $coderef = shift }
map { $_->[0] }
sort{ kcmp($a->[1], $b->[1], $level) }
map { [$_, karr( defined $coderef ? &$coderef($_) : $_, $kanji ) ] }
@_;
}
my $Fsort = $PACKAGE->new(5,2);
my $Msort = $PACKAGE->new(4,1);
my $Bsort = $PACKAGE->new(4,2);
my $Xsort = $PACKAGE->new(4,3);
sub fsort {
my($self,$coderef);
if(ref $_[0] eq $PACKAGE){
$self = shift;
$coderef = $self->{code};
}
if(ref $_[0] eq 'CODE'){ $coderef = shift }
$Fsort->jsort($coderef ? $coderef : (), @_);
}
sub msort {
my($self,$coderef);
if(ref $_[0] eq $PACKAGE){
$self = shift;
$coderef = $self->{code};
}
if(ref $_[0] eq 'CODE'){ $coderef = shift }
$Msort->jsort($coderef ? $coderef : (), @_);
}
sub bsort {
my($self,$coderef);
if(ref $_[0] eq $PACKAGE){
$self = shift;
$coderef = $self->{code};
}
if(ref $_[0] eq 'CODE'){ $coderef = shift }
$Bsort->jsort($coderef ? $coderef : (), @_);
}
sub xsort {
my($self,$coderef);
if(ref $_[0] eq $PACKAGE){
$self = shift;
$coderef = $self->{code};
}
if(ref $_[0] eq 'CODE'){ $coderef = shift }
$Xsort->jsort($coderef ? $coderef : (), @_);
}
sub getorder{wantarray ? %Order : \%Order}
sub getkanji{wantarray ? %JISkanji : \%JISkanji}
1;
__END__