1.8 Unicode合成文字を1つの文字として扱う

合成文字を含むUnicode文字列がある。これらの文字シーケンスのそれぞれを1つの論理文字として扱いたい(通常の文字はそのままで、基底文字と結合文字のペアは1つの文字として扱いたい)。

# 正規表現の\Xを利用すれば、基底文字と結合文字のペアを1つの文字として扱える。
$string = "fac\x{0327}ade"; 
$string =~ /fa.ade";  # マッチしない
$string =~ /fa\Xade/; # マッチする

@chars = split(//, $string); # @charsには7つの文字が格納される。
@chars = $string =~ /(.)/g;  # 同上
@chars = $string =~ /(\X)/g; # @charsには6つの文字が格納される。