in reply to concatenating strings

Also, testing whether the file exists and is executable might not be a bad idea. You can do that with the -x switch:

unless (-x $file) { warn "file $file does not appear to exist or is not executable\n"; next; }

That will also tell you the name of the file not found. Put it right before the system call.