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).