in reply to File writing script (taint mode problem?)

For your next question, please provide the actual text of the error or warning you are receiving. Besides not declaring $q, you'll receive at least one warning about an undefined value in 'string eq'. Instead of comparing a value to undef, try:
if (! defined $tela) { # ... } else { # ... }
Assuming you did leave off the -T flag (or that it's enabled in your webserver CGI association, your open call will fail. $tela will be tainted. Even so, you don't check the success or failure of the open command, which is a bad habit to cultivate.

When run by a webserver, your program has different permissions than when run on the command line. Even if you fix the tainting, this may come back to haunt you. Do check perlvar.