There are several things wrong there that are fixed in Perl 6. You won't need the plus because you'll disambiguate autoquotes differently, so that a
shift in curlies is always a real shift. And plus is always numeric in Perl 6--it's not a no-op as it is in Perl 5. But mostly, methods just look
different. Your code might look more like this in Perl 6:
method foo ($self: $key) {
.{$key} = 3;
return $self;
}
As for vec, that interface is a total kludge. You'll be much happier with real bit arrays, I expect.