my $z; my $x = sub { $z = 2 + 2 } ; eval $x; # doesnt run the sub routine! $x->(); # oh, you mean I have to do THIS to #eval THIS, but I use eval to eval # other things. not so consistent print $z; #### (setq closure (delay (setq z (+ 2 2)))) (eval closure) ;;; works