There's an additional problem. The result of evaluating sub { func( shift, @_ ) } is undefined because you're modifying and using the same variable more than once in an expression. You cannot know whether func() is going to receive a copy of everything in @_ preceded by an additional copy of $_[0] or whether it will give you $_[0] followed by everything remaining in @_.
func( shift @ary, @ary ); # Is one of the following but which one is not defined: func( $ary[0], @ary ); shift @ary; func( @ary ); shift @ary;
As a related note, you can't say = ( shift() . shift() ) because you can't know which shift() is going to happen first.
In reply to Re: open annoyance
by diotalevi
in thread open annoyance
by tlm
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |