Contents of a Unicode (UTF-8) text file named DriedMangos.txt:
| dried mangos |
| mangues séchées |
| 芒果幹 |
| doraido mangōsu |
| ドライドマンゴス |
| ドライドマンゴス |
| ト"ライト"マンコ"ス |
Perl script to demonstrate matching Unicode grapheme clusters using the regular expression backslash sequence \X:
#!perl
use strict;
use warnings;
use autodie;
open my $input_fh, '<:encoding(UTF-8)', 'DriedMangos.txt';
open my $output_fh, '>:encoding(UTF-8)', 'Graphemes.txt';
while (my $line = <$input_fh>) {
chomp $line;
while ($line =~ m/(\X)/g) {
print $output_fh "[$1]";
}
print $output_fh "\n";
}
close $input_fh;
close $output_fh;
Contents of the output text file named Graphemes.txt:
| [d][r][i][e][d][ ][m][a][n][g][o][s] |
| [m][a][n][g][u][e][s][ ][s][é][c][h][é][e][s] |
| [芒][果][幹] |
| [d][o][r][a][i][d][o][ ][m][a][n][g][ō][s][u] |
| [ド][ラ][イ][ド][マ][ン][ゴ][ス] |
| [ド][ラ][イ][ド][マ][ン][ゴ][ス] |
| [ト]["][ラ][イ][ト]["][マ][ン][コ]["][ス] |
(See http://ameblo.jp/gucciman-ikkob/entry-10317490092.html for an explanation of the peculiar last line of the file named DriedMangos.txt.)