You cannot predeclare my ($A,$B) as you are not supposed to know what's in the data-file. It could be any variable name and any value.
However, the eval suggestion is a good one. How about:
$name ='A'; $value =10; $string = 'my $' . $name . '=' . $value . '; print "result inside eval +: $A\n";'; eval ($string) or die "ERROR: $@"; print "result outside eval: $A\n";
As can be expected the lexical declaration does not survive outside of the eval though :-(
"If you have four groups working on a compiler, you'll get a 4-pass compiler." - Conway's Law