in reply to Code review for magazine article?

I should point out that if your script really starts with a line like this:
##################################
followed by the "shebang" line, then it will not run as an executable in any sort of unix(-like) shell. The shebang line must be the very first line.

Apart from that, my initial snap reaction is that it would be better (more appealing to the novice, without being more cryptic) if there were less repetition: the two rather ugly sets of print statements that "talk to the user", each one followed by very similar-looking foreach loops, are a sure sign that you'd be better off with a subroutine that you call twice with different parameters each time. When newbies catch on to subroutines -- which is not that hard to do -- it strikes them as the coolest thing and they love it immediately. You shouldn't deny them that pleasure.