Peter
>...Terry rather I'd like to add your 'best' argument. So, now we have three nice arguments. No, let's split up number two, so four arguments.
>1) It occasionally gives better performance (speed).
>2) It occasionally improves readabillity.
>3) It occasionally improves code maintenance.
>4) It occasionally is the only way to accomplish a task.
The first three points are equally appropiate for using EVAL() and cannot therefore be used as arguments for using macro substitution over using EVAL(). i.e.
EVALUATE() ...
1) It *usually* gives better performance (speed).
2) It *usually* improves readabillity.
3) It *usually* improves code maintenance.
Your forth argument cannot be changed to EVAL()'s benefit since thats part of the point of the discussion. I still say that macro substitution is a legitimate technique, as is EVAL(), and that it has its place when used appropiately and when required. WalterM gave a really nice example in this thread for appropiate use of macro substitution and Sergey has given good examples of when to use EVAL(). Its not a case of "either or".
:)
Jos
In the End, we will remember not the words of our enemies, but the silence of our friends - Martin Luther King, Jr.