Skip Menu |

To: rakudobug [...]
Subject: [LTA] Multi-dimensional Hash subscripts return a List even when indexing a single element
From: "Sam S." <smls75 [...]>
Date: Tue, 7 Mar 2017 16:09:27 +0100
Download (untitled) / with headers
text/plain 925b
When using a multi-dimensional Hash subscript of the form `.{ ; }` the result is always returned as a List (as if taking a slice), even if the subscript for each dimension is scalar: my %hash = a => {b => 2, c => 4}; say %hash{"a"}{"b"}.perl; # 2 say %hash{"a";"b"}.perl; # (2,) That doesn't seem logical, and is also inconsistent with multi-dimensional *Array* subscripts: my @array = 0, [0, 0, 42]; say @array[1][2].perl; # 42 say @array[1;2].perl; # 42 On the other hand, the design docs don't have much to offer on the subject... - -- Shows how to *statically declare* multi-dimensional Hashes (NYI in Rakudo), but not how to index them. - -- Shows mutli-dimensional associative indexing, but not for Hashes but rather for *Arrays with user-defined indices* (NYI in Rakudo).
I sent a pull request which fixes this bug:

This service is sponsored and maintained by Best Practical Solutions and runs on infrastructure.

For issues related to this RT instance (aka "perlbug"), please contact perlbug-admin at