Foreach: Words not parenthesized. csh

Just started shell scripting for the first time today :smiley: Can anyone tell me why I get the error "foreach: Words not parenthesized." for my following code? The program takes in a list of arguments.

foreach card ($argv) 
        echo Hello 
end

This is lecture#1 of the "why not to use c-shell".
It expands the given arguments, and stumbles over characters that have a special meaning to the shell.
Later versions of tcsh can be made more robust by ($argv:q) or the equivalent ($*:q), but still this a hack rather than a solution.
Best is Bourne shell (and derivates like ksh, bash, zsh) with a different syntax:

#!/bin/sh
for card in "$@"
do
 echo "$card"
done

Unfortunately, I am required to make a card game using only c-shell for a class. I am well aware it sucks, otherwise I would not be asking such a basic programming question :confused: Is there any workaround in csh? Thanks

Do not post classroom or homework problems in the main forums. Homework and coursework questions can only be posted in this forum under special homework rules.

Please review the rules, which you agreed to when you registered, if you have not already done so.

More-than-likely, posting homework in the main forums has resulting in a forum infraction. If you did not post homework, please explain the company you work for and the nature of the problem you are working on.

If you did post homework in the main forums, please review the guidelines for posting homework and repost.

Thank You.

The UNIX and Linux Forums.