|Keep It Simple, Stupid|
I think it's great to see all these golf challenges in the Monastery lately. (To those who frown on Perl golf; remember, it's just for fun, this code will never be in production!)
Here are a few tips I've come up with on writing a Perl golf challenge.
Describe the problem as clearly as possible. How frustrating it is to work on a great solution that turns out to solve the wrong problem! Watch out for ambiguous words like 'numbers' (is that integers, reals, whole numbers...?) or 'words' (is that alphanumerics, non-whitespace, ...?).
Explain any boundary cases. Ensure an even playing field by making sure everyone has to do the same work. Of course, something will turn up that you didn't think of ("but yours fails if the list is empty...").
Provide sample input and output. You can clarify the challenge and provide a test case to all the players at the same time. If the example can be pasted directly into a test script, even better!
Show a solution. The same benefits as an example, plus you can demonstrate how you want the subroutine or program to be called. Of course, it doesn't have to be your best solution...
Be ready to clarify. Some joker will have a question he wants answered or an ambiguity he wants resolved before posting his solution. Whan this happens, pick the answer you like best and update the challenge.
Keep on golfing! First round is on me at the 19th!