in reply to Re: subroutine prototypes still bad?
in thread subroutine prototypes still bad?
# deal from the middle of the deck my $card = pop_random( @deck );
And the real trouble with writing code like this is simply that it doesn't behave like regular perl code. A non-perl expert reading that line of code is likely to feel a vague sense of disquiet, a sense that they don't quite know what's going on. A perl expert reading it is going to immediately want to see the definition of pop_random, to make sure the prototype was used right.
On the other hand, the slightly uglier semantics of pop_random( \@deck ); is much less likely to throw anyone off.
(And yes, it's unfortunate that these were called "prototypes": I didn't understand what they were for a long time, because I expected them to be hints to the compiler to help catch errors if the wrong kind or arguments were passed.)
|
|---|