Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Re: Re: Checking for Valid Dates

by tune (Curate)
on Jan 05, 2001 at 04:02 UTC ( [id://49918]=note: print w/replies, xml ) Need Help??


in reply to Re: Checking for Valid Dates
in thread Checking for Valid Dates

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.

-- tune

Replies are listed 'Best First'.
Re: Re: Re: Checking for Valid Dates
by myocom (Deacon) on Jan 05, 2001 at 04:23 UTC
Re: Re: Re: Checking for Valid Dates
by salvadors (Pilgrim) on Jan 05, 2001 at 17:51 UTC

    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

      Yes and no. Some of that is correct, some of it is misleading. I humbly suggest you read (tye)Re: A question of style which I think clears up some of this.

      It is particularly unfortunate that the FAQ suggests using "foo()" since all-lowercase function names is the one case where I can recommend using "&foo()". It also overlooks the real potential for good error checking by intentionally leaving off the parens (for functions with mixed-case names).

              - tye (but my friends call me "Tye")

        Yes and no. Some of that is correct, some of it is misleading.

        Well, as all I posted was an extract from perlfaq7 from the bundled documentation with Perl, I would suggest that you submit a patch for the bits you think are misleading...

        Thanks,

        Tony

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://49918]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (5)
As of 2024-04-24 20:14 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found