In lieu of a factual basis for code changes, you should not suggest
changing of code. You do not know if @_ exists or not, nor do you
know the originating author's program circumstances.
Your advice may or may not be correct. It is not a good practice
to "blindly" suggest code changes.
In almost all cases, I read posters suggesting a sub-routine call
syntax change, not because they understand why, but rather simply
because they are acting a parrot; repeating what is said to them
without thought.
That syntax will bring up pages and pages of documentation with almost
all those pages, unrelated to this thread topic. Yours is an example of
"blindly" suggesting code; you created unwarranted problems.
I have found quoting pertinent information to be on-target and polite.
" What's the difference between calling a function as &foo and foo()?
When you call a function as "&foo", you allow that function
access to your current @_ values, and you bypass prototypes. The
function doesn't get an empty @_--it gets yours! While not
strictly speaking a bug (it's documented that way in the perlsub
manpage), it would be hard to consider this a feature in most
cases.
When you call your function as "&foo()", then you *do* get a new
@_, but prototyping is still circumvented.
Normally, you want to call a function using "foo()". You may
only omit the parentheses if the function is already known to
the compiler because it already saw the definition ("use" but
not "require"), or via a forward reference or "use subs"
declaration. Even in this case, you get a clean @_ without any
of the old values leaking through where they don't belong."
That FAQ is clearly FUBAR. That FAQ contains personal opinion rather
pure facts. The writer of that FAQ clearly has no clue and has resorted
to "parrot" speak.