2016-03-24 12 views
2

なぜここにあるsubstr-rw末尾を切り捨て6Perl6:なぜsubstr-rwはこのように動作しますか?

#!/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. 
+1

Rakudoバージョンで確認2016年1月1日 –

+1

[RT#127782](HTTPS://rt.perl .org/Public/Bug/Display.html?id = 127782) –

+1

このバグは[修正されました](https://github.com/MoarVM/MoarVM/commit/c01472d7c539a8eea55b8443dc99e494437b7fdc) – Christoph

答えて

5

UPDATE:A Rakudo/MoarVM正しく動作する必要があり2016年7月21日以降に建てられました。

私にバグのように見えます。

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

関連する問題