Perl 6 和打印列
Perl 6 and print columns
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方法决定了东亚语言换行支持。
合由 2 个 "syllables"(他们称之为 "grapheme clusters")组成,因此有 2 列。
话虽如此,perl6 内部(在 MoarVM 级别)可以访问存储换行属性的 unicode 数据库,但据我所知,目前没有模块,如 Unicode::UCD 可用于使 East_Asian_Width 属性可用于 Unicode::GCString.
之类的东西
另一方面,将 Unicode::LineBreak 转换为 perl6 看起来很容易,通过 NativeCall 访问 sombok 库。
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方法决定了东亚语言换行支持。 合由 2 个 "syllables"(他们称之为 "grapheme clusters")组成,因此有 2 列。
话虽如此,perl6 内部(在 MoarVM 级别)可以访问存储换行属性的 unicode 数据库,但据我所知,目前没有模块,如 Unicode::UCD 可用于使 East_Asian_Width 属性可用于 Unicode::GCString.
之类的东西另一方面,将 Unicode::LineBreak 转换为 perl6 看起来很容易,通过 NativeCall 访问 sombok 库。