Perl 6和打印列

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语言的linebreaking支持。 合是由2个“音节”(他们称之为“字素集群”)在彼此的顶部,因此2列。

也就是说,perl6在内部(在MoarVM级别上)可以访问存储分行属性的unicode数据库,但据我所知目前没有模块,比如Unicode :: UCD可用于使East_Asian_Width属性可用于类似于统一:: GCString。

另一方面,将Unicode :: LineBreak转换为perl6看起来很简单,通过NativeCall访问Sombok库。

链接地址: http://www.djcxy.com/p/86437.html

上一篇: Perl 6 and print columns

下一篇: Setting and getting a boolean object property in JavaScript