If I have a variable, $bar, which is equal to string "foo" and $foo is equal to 0xdead, how can I get $foo's value while I only have the the string for the variable name?
Essentially, I want to do a kind of pointer indirection on the global namespace or a hash lookup on the global namespace.
The following didn't work:
perl -e 'my $foo=0xdead; my $bar ="foo"; print ${$bar}."\n";'
It only prints the newline.
This trick works only with global variables (symbolic references seek the symbol table of the current package), i. e.
If you want to catch lexicals, you'll have to use
eval ""But using
eval ""without purpose is considered bad style in Perl, as well as using global variables. Consider using real references (if you can).