in reply to running programs

Or if you wanted to use exec you need to break your command into a list:

exec '/home/mailmain/bin/add_members', '-n/home/mailmain/lists/minlist +-news/email.out', '-wy', 'minlist-news'

or more realistically with options:

exec '/home/mailmain/bin/add_members', '-n', '/home/mailmain/lists/min +list-news/email.out', '-wy', 'minlist-news'

But the thing to remember about exec, it replaces the current running process, nothing in your script after the exec call will ever be executed. That's why you normally see the fork/exec model being used. fork will create another (child) process and the exec will replace the child - leaving the parent to either wait for the child and continue or just continue.

-derby

Update Well it doesn't automatically replace the child, it can replace the parent. It's up to you on which one it replaces.