Perl6:为什么 substr-rw 会这样?
Perl6: why does substr-rw behave this way?
这里substr-rw
为什么要截掉尾随的6
?
#!/usr/bin/env perl6
use v6;
my $str = '123';
$str ~= '.' x 30;
$str ~= '456';
say $str; # 123..............................456
$str.substr-rw( 0, 10 ) = '';
say $str; # ........................45
perl6 --version
This is Rakudo version 2016.03-38-g8df1a69 built on MoarVM version 2016.03-46-g50c7f6a implementing Perl 6.c.
更新: 2016-07-21 之后构建的 Rakudo/MoarVM 应该正确运行。
在我看来像是一个错误。请注意,字符串的构造方式很重要:
my $a = '.' x 3 ~ 'x';
my $b = sprintf('%s', $a); # or just '...x', but not "$a"
say $a; #=> ..x
say $b; #=> ..x
$a.substr-rw( 0, 2 ) = '';
$b.substr-rw( 0, 2 ) = '';
say $a; #=> ..
say $b; #=> .x
更新:错误已报告:RT#127782
这里substr-rw
为什么要截掉尾随的6
?
#!/usr/bin/env perl6
use v6;
my $str = '123';
$str ~= '.' x 30;
$str ~= '456';
say $str; # 123..............................456
$str.substr-rw( 0, 10 ) = '';
say $str; # ........................45
perl6 --version
This is Rakudo version 2016.03-38-g8df1a69 built on MoarVM version 2016.03-46-g50c7f6a implementing Perl 6.c.
更新: 2016-07-21 之后构建的 Rakudo/MoarVM 应该正确运行。
在我看来像是一个错误。请注意,字符串的构造方式很重要:
my $a = '.' x 3 ~ 'x';
my $b = sprintf('%s', $a); # or just '...x', but not "$a"
say $a; #=> ..x
say $b; #=> ..x
$a.substr-rw( 0, 2 ) = '';
$b.substr-rw( 0, 2 ) = '';
say $a; #=> ..
say $b; #=> .x
更新:错误已报告:RT#127782