Perl 6是否具有与Unicode::GCString的columns
方法等效的功能?
Perl 5示例:
#!/usr/bin/env perl
use warnings;
use strict;
use 5.10.0;
use utf8;
use open qw( :std :utf8 );
use Unicode::GCString;
my $s = '合'; # U+5408
say length $s; # 1
my $gcs = Unicode::GCString->new( $s );
say $gcs->columns; # 2
Perl6具有内置的Unicode支持,具有本机Uni和NFC / NFD / NFKC / NFKD标准化类型。
我隐约地了解到,Unicode :: GCString :: columns方法确定了Eastasian语言的换行支持。合是由2个“音节”(他们称为“字素簇”)相互组成,因此有2列。
据说,perl6内部(在MoarVM级别上)可以访问存储换行属性的unicode数据库,但是据我所知,目前没有可用的模块(如Unicode :: UCD)使East_Asian_Width属性可用于某些东西像Unicode :: GCString。
另一方面,将Unicode :: LineBreak转换为perl6看起来很容易,可以通过NativeCall访问sombok库。