on Thu, 20 Jun 2002 12:41:34 GMT, Martin A. Hansen wrote:

> i will elaborate the question:
> 
> 
> i have a huge script with many global variables and subroutines.
> 
> several variable names are reused, but lexically scoped to
> subroutines and everything works fine. 
> 
> but if you forget (bugs do occur!) to declare a variable inside a
> subroutine it will get the global variable value and there _may not_
> be any error upon compilation! however, the program will crash or
> malfunction later on. 
> 
> what is the smart way to deal with this?

If I understand you correctly, you don't want your my-variables available 
in your subroutines, but only in your main program. Just put a block 
around the main code:

    #! perl -w
    use strict;

    {
        my $var = 'abc';
        somesub();
    }

    sub somesub {
        print $var;
    }

This gives you (the wanted) error message:

    Global symbol "$var" requires explicit package name at ...

(You could even make this block a sub itself and call it 'main' ;-)

-- 
felix

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to