in reply to Re: (tye)Re3: Functions
in thread Functions

It was one example of a case where the BEGIN is required. With the BEGIN, it works either way. The BEGIN block makes the code more robust. Moving the exit statement down defeats the whole purpose of that line (which is to prevent the maintainer from having to parse all of the lines between the exit and the sub main looking for hidden run-time code. It forces any run-time code to be put up top or into BEGIN blocks making it easy to find).

Sure, it is easy to produce cases where you don't happen to call GlobalRoutine during the window between its definition and the initialization of $sub. That doesn't mean you won't get bit by it.

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

Replies are listed 'Best First'.
Re: (tye)Re4: Functions
by KM (Priest) on Jan 30, 2001 at 02:55 UTC
    This has nothing to do with the original discussion, which I was responding in context to. This has nothing to do with the fact that in the example you gave, I said it didn't need a BEGIN block.. which it doesn't. Then when you start wrapping code around it you start saying that it does. Well, yeah.. when you make it need it, it needs it. Your original example doesn't.

    You could put all your initializations in BEGIN and all your function calls in END for all I care.. your first snippet still doesn't need a BEGIN.

    Cheers,
    KM