Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

Re: Ampersands and sub speed

by ysth (Canon)
on Oct 17, 2005 at 08:18 UTC ( [id://500673]=note: print w/replies, xml ) Need Help??


in reply to Ampersands and sub speed

Just in case anybody missed it amongst the responses, let me emphasize:
  • Do not use the &foo; style of call without a really good reason.
  • (Converse: if you use &, also use () unless you have a really good reason.)
  • Don't use it when foo() doesn't use what it's passed. Explicitly say &foo().
  • Don't use it when you actually want to pass @_ along to foo. Say &foo(@_) if that's what you mean.
Even if you know all about the feature, it's just too easy to forget that something is being passed. And if a bug results, it can be hard to see the cause.

When should you use it? As an optimization. That is, after determining that the code isn't fast enough and determining that the code calling the function represents a significant part of the time used. But highlight what you are doing (and why) with a comment.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others cooling their heels in the Monastery: (3)
As of 2024-04-26 00:05 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found