On Fri, 5 Oct 2001, Bill Jones wrote: > Given - > > { > my $var = 100; > print "\$var is $var\n"; > > } > > print "But here \$var is $var\n"; > > > How can I or is there a way to get outer $var to be equal to 100 without > making $var global? Also, you're not allowed to set it to 100 outside of > the anonymous sub either.
The $var inside the { } is lexically scoped to that block, and cannot be seen outside of it. If you want both a $var inside the scope and one outside the scope, you should declare the one inside the scope with 'local' (intead of with 'my'), so it doesn't tromp over the global $var. But they are still two distinct variables. -- Brett http://www.chapelperilous.net/ ------------------------------------------------------------------------ There's a way out of any cage. -- Captain Christopher Pike, "The Menagerie" ("The Cage"), stardate unknown. -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]