New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Indexing on a Str throws generic “out of range” message which is less than awesome (“hello”[2]) #5740
Comments
From @AlexDanielCode: Result: Actually thrown at: IRC discussion starting here: |
From @zoffixznetOn Mon, 10 Oct 2016 06:05:10 -0700, alex.jakimenko@gmail.com wrote:
I don't get why we throw in this case at all. We don't do it with any of the Positionals: <Zoffix_> m: say $_[42] for 1..1, (1,), [1,], (1,).Seq Other than Blob and Uni, which I'd say also break the consistency: <Zoffix_> m: say "".NFD[1] The throwage breaks the "everything is a 1-item list" idiom, as I can't safely do $x[1], because And regardless of that, I'm -1 on this ticket. Right now $x[1] throws X::OutOfRange on non-Positionals (even though it shouldn't), but the proposed fix for this ticket would see the possibility of yet another exception in another special case being thrown, all for the sake that *someone new to the language* *assumes* Perl 6 can index strings. IMO such special casing will be a hassle to more normal Perl 6 users than a helpful tip to new Perl 6 users. Just recall how often the Perl-5-ism exceptions get thrown when writing normal Perl 6 code. |
The RT System itself - Status changed from 'new' to 'open' |
From @AlexDanielI agree with you, but we can do better. Usually I'm against all perl5 error messages, but I believe that this case is different. I am sure that this is what most people attempt to do at some point. I also know for sure that this is what I did a couple of times when I was starting with Perl 6. I also remember many times people were asking this on the channel. So here's what I think: On 2017-05-08 09:26:53, cpan@zoffix.com wrote:
|
Migrated from rt.perl.org#129843 (status was 'open')
Searchable as RT129843$
The text was updated successfully, but these errors were encountered: