use threads; my $x=1; my $threads = threads->new(sub {eval '(++$x)+1'}); print "The value of \$x before eval is $x\n"; my $val = $threads->join(); print "The eval returned $val\n"; print "The value of \$x after eval is $x\n"; #### The value of $x before eval is 1 The eval returned 3 The value of $x after eval is 1