Altough the ampersand is not mandatory, I use it, in order to read my code easier. In my opinion it belongs to the structured perl programming style.
I would disagree. I think it is clumsy, confusing, needless and potentially problematic:
From perlfaq7:
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 by-pass prototypes. That means that 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.
Tony
In reply to Re: Re: Re: Checking for Valid Dates
by salvadors
in thread Checking for Valid Dates
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |