use strict; use warnings; use open ':std', ':locale'; $_ = <<"__EOI__"; \x{6F22}\x{5B57} \x{3072}\x{3089}\x{304C}\x{306A} \x{30AB}\x{30BF}\x{30AB}\x{30CA} __EOI__ my $hiragana = join ' ', /\p{Hiragana}+/g; my $katakana = join ' ', /\p{Katakana}+/g; my $kanji = join ' ', /\p{Han}+/g; print("hiragana: $hiragana\n"); print("katakana: $katakana\n"); print("kanji: $kanji\n");