http://qs1969.pair.com?node_id=60712


in reply to Improving the efficiency of this piece of code

First of all please don't play games with the font. The usual one is fine.

Secondly rather than calling functions using:   &index; it is better to call it with    index(); so you don't accidentally pass in the wrong parameters. (The first form reuses your current parameters.)

Third I would suggest that you have a final case that reports what the parameter was and that it was not understood. This will help debugging when (in my experience not if) things go sour.

Fourth in chatter you got the suggestion to call param('page') once and put that in a variable. That idea is a good one.

Fifth, you are using strict, good, but I think you are using too much from CGI. Try :standard until that runs into problems. (Or using the OO form.)

I could add more, but this is probably more than enough to digest at one go...

Replies are listed 'Best First'.
Re: 2: Improving the efficiency of this piece of code (&FUNC; vs. FUNC(); vs. &FUNC(); ? )
by ybiC (Prior) on Feb 25, 2001 at 08:44 UTC
    I've made a habit of calling functions as &FUNC(); to make them more readily visible.

    The following explanations would seem to approve my approach.   Are there other factors I should take into account?   Reason(s) why I should forego the preceeding "&"?   Particular situations, perhaps?

    perlman::perlsub tells me:
    "& is optional with parentheses" and that "& makes current @_ visible to called subroutine".

    perlman::perlvar says:
    "within a subroutine the array @_ contains the parameters passed to that subroutine. See the perlsub manpage".
        thanks,
        Don
        striving for Perl Adept
        (it's pronounced "why-bick")

    Update: After reading tye's post that Albannach linked below, and re-reading tilly's post above, I *think* I'm OK in continuing to &FUNC().

      Coincidentally I ran across this node today in which tye offers a nice summary of calling options.

      --
      I'd like to be able to assign to an luser