in reply to Working with arrays of variables
First, two smaller problems: close variables; should be close $variables; and $i <= $n should be $i < $n.
If you can, you really should switch to using hashes to store this data. But since you say you've already got "hundreds of arrays with 50+ variables each", here's a way to do what you need, but please note that I would not recommend using this method often. In fact, if you can, maybe your first step should be to convert those hundreds of arrays into a more manageable format first (YAML, JSON, XML, etc.), before continuing to work with them.
Since eval can execute arbitrary code, which can be a security problem (!), I've added a simple (possibly too simplistic!) check to make sure only things that look like variables are eval-ed.
for (my $i=0; $i<$n; $i++) { my $value = $pizzas[$i]; $value = eval $value if $value=~/^\$\w+$/; print $variables "$pizzas[$i]=$value\n"; }
|
|---|