Hello. I released new versions of Unicode::Normalize and ::Collate. http://search.cpan.org/author/SADAHIRO/Unicode-Normalize-0.21/ http://search.cpan.org/author/SADAHIRO/Unicode-Collate-0.24/ STORY The initial BEGIN blocks are changed from this (*** is either of 'Normalize' or 'Collate') if (ord("A") == 193) { die "Unicode::*** not ported to EBCDIC\n"; } to this. unless ("A" eq pack('U', 0x41) || "A" eq pack('U', ord("A"))) { die "Unicode::*** cannot stringify a Unicode code point\n"; } In a perl for ASCII, both ("A" eq pack('U', 0x41)) and ("A" eq pack('U', ord("A"))) must be true while, in a perl for EBCDIC, either should be false; As I'm not cartain whether is true for EBCDIC, added the following tweak. (1) If the former were true, stringification of Unicode code points could be carried out by pack('U*') as well as one for ASCII; (2) elsif the latter were true, Unicode code points (less than 256) should be translated into native code points for EBCDIC; (3) else, any further work should be abandoned. If a test would failed for EBCDIC, the code might be broken; as well as the test itself might be broken. Thank you, SADAHIRO TomoyukiThread Next