# New Ticket Created by  Sam S. 
# Please include the string:  [perl #130947]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org/Ticket/Display.html?id=130947 >


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...

- https://design.perl6.org/S09.html#Hashes -- Shows how to *statically
declare* multi-dimensional Hashes (NYI in Rakudo), but not how to
index them.

- https://design.perl6.org/S09.html#User-defined_array_indexing --
Shows mutli-dimensional associative indexing, but not for Hashes but
rather for *Arrays with user-defined indices* (NYI in Rakudo).

Reply via email to