in reply to Debugging?

Your use strict line is causing all sorts of helpful error messages to spew forth, but you are not seeing the error messages, because the $q=<STDIN> trick doesn't work with compile time errors. First, open a command line window and run the program from there, don't just click on the file. Then check out Use strict and warnings and the links from it, and the strict documentation on how to fix those errors. Mostly you will be putting my (see that also) in front of the first occurance of every variable.

Also, when you're done fixing your problems, see -Mouse on an alternative way of doing that $q=<STDIN> thing (which has nothing to do with your problem but it's neat anyway).