2016-03-24 20 views
2

Neden burada substr-rw izleyen 6 kesiyor? Perl6: neden substr-rw bu şekilde davranıyor?


#!/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 sürümü ile Onaylandı 2016/01/01 –

+1

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

+1

bu hata [henüz giderilmiştir] (https://github.com/MoarVM/MoarVM/commit/c01472d7c539a8eea55b8443dc99e494437b7fdc) – Christoph

cevap

5

GÜNCELLEME:A Rakudo/MoarVM 2016/07/21 doğru davranması gerektiği sonrasında inşa.

Bana bir hata gibi görünüyor.

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 

Güncelleme: hata rapor edilmiştir: dize nasıl inşa edildiğini önemli olduğunu unutmayın RT#127782

İlgili konular