in reply to regexp trouble...

Why go to all the trouble of making \$'s? All you need to do is match correct variables. A swap like the following would help (this assumes that you probably won't -- and shouldn't for that matter -- use pattern match memories in your stagnant test ala $1,$2,$3 -- this behaviour is awfully magic and difficult to read).
$Data =~ s/(\$[a-z\_]\w*)/eval($1)/egi; </pre> Don't worry, this is still secure even with the eval. If your brave, why not also include hashes and arrays in your swaps li +ke the following: <pre> $Data =~ s/(\$[a-z\_][\w\{\}\[\]]*)/eval($1)/egi;
This isn't strict in the match but it will catch most things like $A{B} and so on. Both of these don't even touch values that look like $6.00.