"Intermediate Perl" (Schwartz et. al.) has a great series of similar exercises in it, with solutions. It is explicitly object-oriented, but also contains the best explanation of essential things like grep and map I've ever seen.
The goal is module writing, which looking at the exercise above I would say it might be best done that way, anyway. And it's not too thick. If your participants are interested in doing perl homework they'll love it.