Skip to content

Chap. 6.4 substr example doesn't work #73

muixirt opened this Issue Jul 24, 2012 · 2 comments

3 participants

muixirt commented Jul 24, 2012

When I try it:
$ perl6 -e 'my $p = "perl 5"; substr($p, 6, 1, '6'); say $p'
Too many positional parameters passed; got 4 but expected between 2 and 3
in sub substr at src/gen/CORE.setting:2034
in block at -e:1

Even in Perl 5 it doesn't work as expected :-)
$ perl -E 'my $p = "perl 5"; substr($p, 6, 1, '6'); say $p'
perl 56

gdey commented Oct 30, 2012

I verified this.

I believe that the index starts at 0 not at 1, so the count should be 5, and not six. It seems that niecza correctly implements both, but rakudo only implements the 3 param version. Also, it seems that rakudo done not implement the lvalue version of the substr, and instead the spec has been changed to include substr-rw, which is the lvalue version of substr.

The section of the book should talk about these differences, or at least point to another part of the book that goes into detail.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.