in reply to Re: Re: Best way to pass variables?
in thread Best way to pass variables?

My 2nd example showed how you can limit the scope of the lexical variable: just wrap the desired area in a block. The variable will exist only within that block. That is the "better way" you were looking for.

You should note that your use of "global" is not the same as Perl's. Variables that are declared with my are never globals. They are lexicals, scoped either by an enclosing block, or by the file if there is no enclosing block. Globals, on the other hand, are associated with packages and have entries in symbol tables. It is this type of global that perl was warning you about when it complained about your print $response statement. Because you had not declared the variable as lexical in the enclosing scope, $response was presumed to be $main::response (that is, the global variable named $response within the main:: package).


The PerlMonk tr/// Advocate