in reply to string initialization error

providing a Short, Self-Contained, Correct Example would help, since there are obviously not 41 lines in your snippet. I am assuming "line 41" is the if ($page eq 'main') { line. In which case, the warning is there because $page is not defined. That would happen if, for example, you were not given a "page" parameter when the CGI script was run (ie, the URL didn't include page=blah, or you didn't pass that on the command-line when debugging your CGI script).