If you decided to use eval, you should really consider this:
# file eval.pl
use strict;
use warnings;
my $sep = shift @ARGV;
my $evaled = eval "qq/$sep/";
print "$evaled:\n"
Now the user enters this:
perl eval.pl 'hehe/; print "Hello there!\n"; unlink "./eval.pl"; q/foo
+'
Result:
Useless use of a constant ("hehe") in void context at (eval 1) line 1.
Hello there!
foo:
And the eval.pl file is gone. So, yeah... as I said, eval is usually more trouble than it's worth. Maybe consider module Safe, which provides restricted eval, if you're dealing with users there (users are evil).