http://www.perlmonks.org?node_id=11125810


in reply to Re^2: why avoid & on function call
in thread why avoid & on function call

"The placement of a sub is important only when you call it without parentheses, ..."

I disagree with the inclusion of the word only in that statement. Here's a situation where placement is important when parentheses are used:

$ perl -wE ' sub meaning () { 42 } say meaning(); ' 42
$ perl -wE ' say meaning(); sub meaning () { 42 } ' main::meaning() called too early to check prototype at -e line 2. 42

You can, of course, predeclare and leave the definition for later:

$ perl -wE ' sub meaning (); say meaning(); # ... later in code with other subroutine defintions sub meaning () { 42 } ' 42

— Ken