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

rsiedl has asked for the wisdom of the Perl Monks concerning the following question:

Hi monks,

Just have a simple question...

Can anyone tell me if there is a way of using a variable from a "non strict" routine outside of that routine without turning off strict?
Maybe the code below explains better than I do...
#!/usr/bin/perl use strict; use warnings; my %data = ( "blah"=>1, "boo"=>2, "hoo"=>3 ); # assign each key to a variable of the same name foreach (keys %data) { no strict; my $$_ = $data{$_}; } # end-foreach print $blah; exit;
returns an error
Global symbol "$blah" requires explicit package name at tmp.pl line 15.
Execution of tmp.pl aborted due to compilation errors.
Any help?

Cheers,
Reagen

Update: Just changed what $$_ is equal to...

Update: Ok, looks like people arent happy with my methods in this post, which I did rather expect. The reason that I'm trying to do this is that I'm trying to plug a hash into an old piece of code (for a once off) and I was hoping not to have to change every instance of i.e $blah to $hash{'blah'}. Just being lazy...