0

charnames::viacode()コードポイントの短い名前、つまり有効なときに使用できる名前を返すバージョンはありuse charnames ':short'ますか?

use charnames ':short';

my $x = ord("\N{Cyrillic::es}");

say "long name:  ", charnames::viacode($x); # prints "CYRILLIC SMALL LETTER ES"
say "short name: ", ???($x);                # want: Cyrillic:es
4

1 に答える 1

1

charnamesドキュメント

SCRIPTNAME:CHARNAME

を検索します

  • SCRIPTNAME CAPITAL LETTER CHARNAME(CHARNAMEがすべて小文字でない場合)
  • SCRIPTNAME SMALL LETTER CHARNAME(CHARNAMEがすべて小文字の場合)
  • スクリプト名文字の文字名

だからあなたは使うことができます

sub short_name {
   my ($long_name) = @_;
   return "$1:\U$2" if $long_name =~ /^(\S+) CAPITAL LETTER (\S+)\z/;
   return "$1:\L$2" if $long_name =~ /^(\S+) SMALL LETTER (\S+)\z/;
   return "$1:$2"   if $long_name =~ /^(\S+) LETTER (\S+)\z/;
   return $long_name;
}
于 2013-01-10T23:14:26.213 に答える