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

Reply via email to