sub is_vowel { return $_[0] =~ / ^ [\x{1F00}-\x{1FE3}\x{1FE6}-\x{1FFE}\x{0386}-\x{038F}\x{0390}\x{0391}\x{0395}\x{0397}\x{0399}\x{039F}\x{03A5}\x{03A9}\x{03AA}-\x{03B1}\x{03B5}\x{03B7}\x{03B9}\x{03BF}\x{03C5}\x{03C9}-\x{03CE}] \z /x; } #### \N{GREEK SMALL LETTER ALPHA WITH PSILI}- \N{GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA} \N{GREEK SMALL LETTER UPSILON WITH PERISPOMENI}- \N{GREEK DASIA} \N{GREEK CAPITAL LETTER ALPHA WITH TONOS}- \N{GREEK CAPITAL LETTER OMEGA WITH TONOS} \N{GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS} \N{GREEK CAPITAL LETTER ALPHA} \N{GREEK CAPITAL LETTER EPSILON} \N{GREEK CAPITAL LETTER ETA} \N{GREEK CAPITAL LETTER IOTA} \N{GREEK CAPITAL LETTER OMICRON} \N{GREEK CAPITAL LETTER UPSILON} \N{GREEK CAPITAL LETTER OMEGA} \N{GREEK CAPITAL LETTER IOTA WITH DIALYTIKA}- \N{GREEK SMALL LETTER ALPHA} \N{GREEK SMALL LETTER EPSILON} \N{GREEK SMALL LETTER ETA} \N{GREEK SMALL LETTER IOTA} \N{GREEK SMALL LETTER OMICRON} \N{GREEK SMALL LETTER UPSILON} \N{GREEK SMALL LETTER OMEGA}- \N{GREEK SMALL LETTER OMEGA WITH TONOS} #### \N{GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI} \N{GREEK SMALL LETTER SIGMA}\N{GREEK SMALL LETTER TAU}\N{GREEK SMALL LETTER OMICRON} \N{GREEK SMALL LETTER DELTA}\N{GREEK SMALL LETTER IOTA}\N{GREEK SMALL LETTER ALPHA WITH TONOS}\N{GREEK SMALL LETTER OMICRON}\N{GREEK SMALL LETTER LAMDA}\N{GREEK SMALL LETTER OMICRON} #### \N{GREEK CAPITAL LETTER ALPHA WITH VARIA}\N{COMBINING GREEK YPOGEGRAMMENI} \N{GREEK CAPITAL LETTER SIGMA}\N{GREEK SMALL LETTER TAU}\N{GREEK SMALL LETTER OMICRON} \N{GREEK CAPITAL LETTER DELTA}\N{GREEK SMALL LETTER IOTA}\N{GREEK SMALL LETTER ALPHA WITH TONOS}\N{GREEK SMALL LETTER OMICRON}\N{GREEK SMALL LETTER LAMDA}\N{GREEK SMALL LETTER OMICRON} #### \N{GREEK CAPITAL LETTER ALPHA WITH VARIA}\N{GREEK CAPITAL LETTER IOTA} \N{GREEK CAPITAL LETTER SIGMA}\N{GREEK CAPITAL LETTER TAU}\N{GREEK CAPITAL LETTER OMICRON} \N{GREEK CAPITAL LETTER DELTA}\N{GREEK CAPITAL LETTER IOTA}\N{GREEK CAPITAL LETTER ALPHA WITH TONOS}\N{GREEK CAPITAL LETTER OMICRON}\N{GREEK CAPITAL LETTER LAMDA}\N{GREEK CAPITAL LETTER OMICRON} #### use Unicode::Normalize qw(NFD); sub is_greek_vocalic($) { use charnames "greek"; die "wrong args" unless @_ == 1; local $_ = NFD(lc(shift())); s/\pM+//g; # combining marks from NFD form s/\p{Diacritic}+//g; # eg, GREEK DASIA, which is \p{Sk} return scalar m{ ^ [\N{alpha}\N{epsilon}\N{eta}\N{iota}\N{omicron}\N{upsilon}\N{omega}]+ \z }x; }