> Example 1:
> eval(win.debugshow("test"))
> do(win.debugshow("test"))
>
> Result is the same.
>
> But:
> eval(*dos *hide dir r:\ /s > test.txt)) doesn't work - error
> do(*dos *hide dir r:\ /s > test.txt)) works
Do runs commands. Commands are things that work in command entry
controls or as single lines in scripts.
eval evaluates expressions stored as strings and returns the
results. Expressions are things that work on the Left hand side of
an = like "2+2". Some strings work both as commands or expressions
as you found in your example 1: calls to plugins and calls to
scripts are the main examples.
You probably would never need to use eval in day-to-day scripting.