> push (/foo/ && @foo || > /bar/ && @bar || > /zap/ && @zap), $_ for @source;
Presumably, to avoid run time errors, that would need to be something like: push (/foo/ && @foo || /bar/ && @bar || /zap/ && @zap || @void), $_ for @source; > But perhaps... > > ( @foo, @bar, @zap) := > part { /foo/ => 0, /bar/ => 1, /zap/ => 2 }, @source; Why not: part ( @source, /foo/ => @foo, /bar/ => @bar, /zap/ => @zap ); or maybe: @source -> /foo/ => @foo, /bar/ => @bar, /zap/ => @zap; To end up with @foo entries being *aliases* of entries in @source. Btw, could these be valid, and if so, what might they do: @source -> $foo, $bar; @source -> @foo, @bar; -- ralph