in reply to why avoid & on function call

Please read perlsub.

Not only does the & form make the argument list optional, it also disables any prototype checking on arguments you do provide. This is partly for historical reasons, and partly for having a convenient way to cheat if you know what you're doing.

I'm not going to quote the entire thing, so, please go read perlsub.

I reckon we are the only monastery ever to have a dungeon stuffed with 16,000 zombies.