@a = ("'hello world'",'print ', ';'); eval(@a[1] . @a[0] . @a[2]); #### $re='.*?(@)((?:[a-z][a-z0-9_]*))(\\[)(\\d+)(\\])'; open(FILE, "+; close FILE; foreach (@code) { $code .= $_; if ($_ =~ m/$re/) { $rndIndex=0; $c1=$1;$var1=$2;$index=$4;$c3=$5; $rndIndex = int(rand(99999)); $old = $c1.$var1.$index.$c3; $varName = "$index$c3"; $varName =~ s/$index/$rndIndex/; $code =~ s/[$old]/$varName/g; } } print $code; #show output example