in reply to Is strict too strict here?

'no strict "vars"' would obviously shut strict up, but I would still like strict's variable name checking.
Since strict vars relies on lexical analysis, you have a perverse need to use eval() and you already mentioned that you don't know which variables will be used (how is this in any way realistic again? This seems like a prime example of an XY Problem) you have no choice but to disable strict vars. Luckily you only need it at the eval point:
sub eval_this { my $code = shift; $code = "package main; \n$code"; no strict 'refs'; eval $code; die ("Error: $@") if $@; }

update: you could do:

eval_this('our $var; print $var');
Which doesn't really improve on the situation at all, but would shut up strict.