[EMAIL PROTECTED] asked:
> Here's an excerpt about the & from orielly and what the heck
> does it means:
>
> "...If a subroutine is called using the & form, the argument list is
> optional. if ommitted, no @_ array is setup for the routine;
> the @_ array at the time of the call is visible to subroutine instead."
If in doubt, run a test ;-)
#!/usr/bin/perl -w
use strict;
sub showargs {
print "arguments are: " . join(', ', @_) . "\n";
}
sub test {
print "Arguments for test() are: " . join(', ', @_) . "\n";
print "Calling &showargs - ";
&showargs;
print "Calling &showargs() - ";
&showargs();
print "Calling showargs - ";
showargs;
print "Calling showargs() - ";
showargs();
}
test qw(foo baz bar);
__END__
> So, is there a better or worse? both ways works for me. I just started
> going back and putting the & onto the sub ;) I don't like it
> the & but I thought that you need it.
See for yourself - there's only one use for the ampersand,
and it's obscure. My advice would be to avoid using it even
in the one situation where it would make sense - when passing
@_ as an argument to your function. Sure, it is idiomatic Perl
at its best, but it also makes a program harder to read and
understand.
In other words - save it for Perl Golf ;-)
HTH,
Thomas
PS: Perl Golf - writing code with as little (key-)strokes as
possible.
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]