Hi, thank you very much for your contribution. I'm now in the middle of testing and applying it, and if all goes right, I'll push it tonight (ie in the course of a few hours).
According to my tests it does exactly what it should, I only found one minor bug: {a => 1, b => 0}.pick(*) would produce abbbbbbbbbbbbbbbb... Radu Stoica wrote: > + } else { > + my %copyHash = self; Changing this line to my %copyHash = @.pairs.grep({ .value != 0}); fixed the problem. I'll also fix some minor nits, like simplifying my $middle = $l + floor( ($r-$l)/2); to my $middle = floor ($r + $l) / 2 which is a tad easier to understand, and maybe a tad faster. I'll also try to remove some duplicate code, but all in all it's really a fine implementation. Thanks again! Cheers, Moritz