Hi,

On 09/26/2015 07:58 AM, Gabor Szabo wrote:
> In the first two cases the hash was converted to Pairs before assigning
> to the array.
> Only the third case gave what I hoped for. How can I push a hash onto an
> array as a single entity?
> 
> 
> use v6;
> 
> my %h = x => 6, y => 7;
> say %h.perl;     #  {:x(6), :y(7)}
> 
> my @a = %h;
> say @a.elems;   #
> say @a[0];         # x => 6

A trailing comma helps:

my %h = a => 1, b => 2;
my @a = %h, ;
say @a.perl;    # [{:a(1), :b(2)},]


> my @c;
> @c.push(%h);
> say @c.elems;     # 2
> say @c[0];           # x => 6

I would have expected the traiing comma to help here too:

my @b; @b.push: %h, ;
say @b.perl;            # [:a(1), :b(2)]

but alas, not. I wonder if this is a bug.

This works:
my @b; @b.push: $%h;
say @b.perl;            # [{:a(1), :b(2)},]

Cheers,
Moritz

Reply via email to