[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]