sub identify_CJK { local $_ = shift; return "J" if /\p{Hiragana}|\p{Katakana}/; return "K" if /\p{Hangul}/; return "C" if /\p{Han}/; return "Others"; # Note that the order matters because Japanese text # most likely contains Hanzi (Kanji) characters and # so does Korean text (less frequently though). }