in reply to strict or not strict?
Here's a way of doing it -- but it uses package variable (i.e. globals) and, of course, you have to fully qualify them. (Or else declare them with "our").
#!/usr/bin/perl use strict; use warnings; my %data = ( "blah"=>1, "boo"=>2, "hoo"=>3 ); # assign each key to a package variable of the same name foreach (keys %data) { no strict 'refs'; ${"main::$_"} = $data{$_}; } # end-foreach # note, this causes a "used only once" warning as the symbolic referen +ce # above doesn't count. Irrelevant for this example. print $main::blah; exit;
It's still unclear what this gains you. Anytime you're resorting to symbolic references or package variables, it should be a warning sign that something isn't well thought out. There are relatively few areas where it makes sense (e.g. writing modules which manipulate the symbol table of the package that uses them.)
-xdg
Code written by xdg and posted on PerlMonks is public domain. It is provided as is with no warranties, express or implied, of any kind. Posted code may not have been tested. Use of posted code is at your own risk.
|
|---|