Damian Conway wrote:
> (@foo,@bar,@zap) := part [/foo/, /bar/, /zap/], @source;
If we're worried about the distance between the source and destination
when there are many tests, maybe:
part { /foo/ => @foo, /bar/ => @bar, /zap/ => @zap }, @source;
Or, 'long' formatted:
part {
/foo/ => @foo,
/bar/ => @bar,
/zap/ => @zap,
}, @source;
Assuming the type system can handle that. But people will forget the
comma before C<@source>, because it looks so similar to C<map>. And
think of the { ... } as a code block, not a hashref. Pffft.
I keep thinking we're missing something here. This is just a
multi-streamed C<grep>, after all. It should be easy.
Was it ever decided what C<for> would look like with multiple streams?
Maybe we could just use the stream delimiters in the C<grep> like we do
in C<for>?
grep {
/foo/ -> @foo,
/bar/ -> @bar,
/zap/ -> @zap,
} @source;
???
MikeL