I suspect if you're doing the (rough) equivalent of:
push @bar, shift @_ for (1 :: $big_number);
Then you're doing something wrong. I amost always use the my ($foo, $bar) = @_; form cos I've shot myself in the foot using the latter a few too many times ...