Hi,
On 11/07/2015 02:45 AM, Marc Chantreux wrote:
> hello,
>
> using perl6 version 2015.09 built on MoarVM version 2015.09,
> i'm trying to create a hash with a slice of another one and some extra
> pairs. as exemple:
>
> my %x = < login jdoe first john last doe >;
> my %y = :enable, |( %x< login first >.kv);
>
> gives
>
> 0 => jdoe, 1 => john, enable => True
That's because %x< login first> returns a List of values:
say %x< login first >.perl; # ("jdoe", "john")
At this point you have lost the keys, and .kv helpfully supplies the
integer indexes of the list as keys.
What you really want is
%x< login first >:p
This works for me:
my %x = < login jdoe first john last doe >;
my %y = flat (:enable, %x< login first >:p);
say %y.perl; # {:enable, :first("john"), :login("jdoe")}
Cheers,
Moritz