in reply to Stopping execution of an eval statement

I guess your stopEvalutate sub could set a global flag, and the for look in the evalstatement could check for it:
for(my \$x=0;\$x<25;\$x++){ return "Statement aborted" if $stop_requested; ... }
Perhaps fork'ing would be better approach so that you could just kill off the children?