Ruby で Premature end of script headers

CGI を作っていて、Premature end of script headers が全然消えない。

print 'Content-Type:text/html\r\n\r\n'

ってシングルクォートで囲うと、\r\nが特殊文字ではなくそのままに認識されるのでした。

print "Content-Type:text/html\r\n\r\n"

でないとダメ。

あと、require しているライブラリへのパーミッションがなかったりしても Premature end of script headers が起きる。
気づきにくかったのは popen での Broken Pipe エラー、これは呼び出していたスクリプトの実行権限がなかった。