si tratta di uno script CGI, cioè evocato via web?
in questo caso è ovvio che il sistema client-webserver si aspettano una risposta quindi devi alla fine generare un output http, sia che si tratti di codice html, sia che sia una redirezione.
per il secondo problema bisogna vedere come viene generato l'header, il metodo più diretto è:
print "Content-type: text/html\n\n";
print "quello che vuoi\n";