1# 2# $Id$ 3# 4# This script is written intentionally in EUC-JP 5# -- dankogai 6 7BEGIN { 8 if ($ENV{'PERL_CORE'}){ 9 chdir 't'; 10 unshift @INC, '../lib'; 11 } 12 require Config; import Config; 13 if ($Config{'extensions'} !~ /\bEncode\b/) { 14 print "1..0 # Skip: Encode was not built\n"; 15 exit 0; 16 } 17 if (ord("A") == 193) { 18 print "1..0 # Skip: EBCDIC\n"; 19 exit 0; 20 } 21 unless (PerlIO::Layer->find('perlio')){ 22 print "1..0 # Skip: PerlIO required\n"; 23 exit 0; 24 } 25 if ($ENV{PERL_CORE_MINITEST}) { 26 print "1..0 # Skip: no dynamic loading on miniperl, no Encode\n"; 27 exit 0; 28 } 29 $| = 1; 30} 31 32use strict; 33#use Test::More qw(no_plan); 34use Test::More tests => 6; 35use Encode; 36use encoding 'euc-jp'; 37 38my @hiragana = map {chr} ord("��")..ord("��"); 39my @katakana = map {chr} ord("��")..ord("��"); 40my $hiragana = join('' => @hiragana); 41my $katakana = join('' => @katakana); 42my %h2k; @h2k{@hiragana} = @katakana; 43my %k2h; @k2h{@katakana} = @hiragana; 44 45# print @hiragana, "\n"; 46 47my $str; 48 49$str = $hiragana; $str =~ tr/��-��/��-��/; 50is($str, $katakana, "tr// # hiragana -> katakana"); 51$str = $katakana; $str =~ tr/��-��/��-��/; 52is($str, $hiragana, "tr// # hiragana -> katakana"); 53 54$str = $hiragana; eval qq(\$str =~ tr/��-��/��-��/); 55is($str, $katakana, "eval qq(tr//) # hiragana -> katakana"); 56$str = $katakana; eval qq(\$str =~ tr/��-��/��-��/); 57is($str, $hiragana, "eval qq(tr//) # hiragana -> katakana"); 58 59$str = $hiragana; $str =~ s/([��-��])/$h2k{$1}/go; 60is($str, $katakana, "s/// # hiragana -> katakana"); 61$str = $katakana; $str =~ s/([��-��])/$k2h{$1}/go; 62is($str, $hiragana, "s/// # hiragana -> katakana"); 63__END__ 64