Hi, I am running this on z/OS and perl-5.8.6. $a = 160; $b = 240; for($i=$a;$i<=$b;$i++) { $str = join "",$str, pack 'U*',$i; } if ($str =~ /(\p{inlatin1supplement}+)/) { print "\$1 : $1\n"; } 1) If I pipe the o/p to od -tc -tx, $1 shows me two bytes for each code pt value (e.g. \x8a\x41 for value=192).
2) If I set $a = 192, $b = 240, and repeat the test, then, $1 now shows me 1 byte for each matching code pt value (e.g. \x64 for value=192). For all values of 160 <= $a < 192, ($b = 240), $1 shows two bytes and at $a = 192, $1 shows 1 byte. Why is it so ? Does the codepoint value 192 have any special significance in utf-ebcdic ? Thanks, Rajarshi. __________________________________ Discover Yahoo! Have fun online with music videos, cool games, IM and more. Check it out! http://discover.yahoo.com/online.html