use Unicode::String; my $code1='my $var_with_é_accent=5;print "var is $var_with_é_accent";'; $code1="use utf8;$code1"; $code1=Unicode::String::latin1($code1)->utf8; print "\nEval buggy code\n"; eval "$code1"; print "ERR = $@" if ($@);; print "DONE\n"; my $string; my $code2='$string="new eval done";'; print "\nEval good code\n"; eval $code2; print "ERR = $@" if ($@); print "string is : $string\n"; print "DONE\n";