my $in = [ one => 1, two => 2, two => '2.003' ];
my %h;
for @$in -> $k, $v {
%h{$k}.push: $v;
}
####
use v6;
my $in = [ 'one', 1, 'two', 2, 'two', '2.003' ];
my %h;
for @($in) -> $k, $v {
if %h{$k} {
%h{$k}.push: $v;
} else {
%h{$k} = [ $v ];
}
}
say %h.perl;
# output:
# {"one" => [1], "two" => [2, "2.003"]}
####
use v6;
my $in = [ one => 1, two => 2, two => '2.003' ];
my %h;
for @($in) {
if %h{.key} {
%h{.key}.push: .value;
} else {
%h{.key} = [ .value ];
}
}
say %h.perl;
# vim: ft=perl6 sw=4 ts=4 expandtab
# same output
####
%h{.key}.push: .value for @$in:
####
my %h = $in.classify: { $_ };
####
for @($in) -> $k, $v {
%h{$k} //= [];
%h{$k}.push: $v;
}