As the previous poster suggested, running with 'use strict' and 'use warnings' will make your life much, much easier. Perl without those saftery features can be very frustrating and mysterious to the newbie. With those features turned on, Perl will check for mispelled variables, funny code constructs, and all sorts of other things that you probably didn't mean to do.
That said one other problem is that you're calling exec within a for loop. As the handy documentation says (See perldoc -f exec), exec calls the command specified and never returns. Your process is replaced with the new process. So your for loop would execute at most once. Instead, you should probably use system or else fork and then exec. That second one is probably a bad idea, though.