Why type more than you need to?
This philosophy is one I don't agree with, especially when developing code you are going to have to go back and tweak later.
You're right. And I asked the wrong question; or at least an incomplete one. What I meant to ask was: why type more when you're not gaining anything? Your code is more complex, it's partially duplicated, and it's not very readable. I consider myself a strong Perl programmer (and I realize that assumption can be a dangerous one to start with :-), and I had to sit for a minute before I could figure out what it was that you'd done.
Every time I've done a quick shift in the middle of a block of code, I've had to go back and change it later. With @args, I might want to later replace that @args with ($gorp,$slug,@args) = shift() for instance. It leaves a place in the code to do that, and I only have to edit one line to make that change.
Are you sure you don't mean
my (@args) = @_;?
shift only ever returns one element, so using it in list context is pointless:
($gorp,$slug,@args) = shift() doesn't do anything to
$slug or
@args.
I don't mean to grill you. I just want to understand and give some (hopefully friendly) advice.
Update: my 200th node! :-)