Perl我会使用fc而不是uc吗?

时间:2015-06-17 20:38:54

标签: perl

您何时需要使用fc(),何时uc()会失败?

Perl fc documentation

1 个答案:

答案 0 :(得分:11)

fc用于不区分大小写的比较。

uc($a) cmp uc($b)    # XXX
lc($a) cmp lc($b)    # XXX
fc($a) cmp fc($b)    # ok

这会产生影响的一个例子:

   lc uc fc
-- -- -- --
ss ss SS ss
SS ss SS ss
ß  ß  SS ss
ẞ  ß  ẞ  ss

请注意fc(“ß”)eq fc(“ẞ”),但uc(“ß”)ne uc(“ẞ”)。

请注意fc(“ß”)eq fc(“ss”),但lc(“ß”)ne lc(“ss”)。

该表是使用

生成的
use strict;
use warnings;
use feature qw( fc );

use open ':std', ':encoding(UTF-8)';

my $ss = "\N{LATIN SMALL LETTER SHARP S}";
my $SS = "\N{LATIN CAPITAL LETTER SHARP S}";

printf("   lc uc fc\n");
printf("-- -- -- --\n");
printf("%-2s %-2s %-2s %-2s\n", $_, lc($_), uc($_), fc($_))
   for 'ss', 'SS', $ss, $SS;