It seems that 'everyone' focuses on the & as being the problem and never mention that ampersand with parens is okay, sometimes even an advantage.
Because I've repeatedly pointed out the issue with &foo; I take the easy way in my replies and don't mention &foo() as the alternative. Instead of elaborating on the same issue once again I'll quote myself. From Re: Hash values and constants:
I intentionally avoided mentioning & as a way of disambiguate the constant. This is because it will confuse and mislead people to think that you can do &foo; instead of foo(), which isn't the case.
From Re: Re: Forward-referenceing subs
For some reason, it's much more common to drop the parenthesis when dereferencing than when making a regular subroutine call.
Therefore I consistently use $foo->()
as it doesn't leave room for such subtle unexpected behaviour as &$foo;
See perltoc if you don't know which perldoc to read!