Not usually, but it does if the sub is "prototyped"; in which case the call with & will disregard the "prototype".
It can also matter if you don't supply parens on your call; in which case you'll need to declare the sub before you call it unless you use the & on your call.
$ perl -le 'foo; sub foo { print "foo" }'
$ perl -le '&foo; sub foo { print "foo" }'
foo
Enabling warning will help you catch that sort of an error.
$ perl -wle 'foo; sub foo{ print "foo"}'
Unquoted string "foo" may clash with future reserved word at -e line 1
+.
Useless use of a constant in void context at -e line 1.
-sauoq
"My two cents aren't worth a dime.";
|