a.cgiにてクッキーをセットし、
同じ階層のb.cgiでクッキーの読み出しをしようと
したところエラーが発生いたします。

b.cgiの $main->param(READID => $readid); の箇所の指定で
エラーが出ているようですが、原因がわかりません。
どのような指示が相応しいのでしょうか?
ご教示いただけるとありがたいです。
よろしくお願いいたします。

■a.cgi

use CGI;
use HTML::Template;

my $q = CGI->new;
my $readid = $q->cookie("id");
$main->param(READID => $readid);

print "Content-Type: text/html\n";
print "Set-Cookie: id=$id; expires=Tue, 1-Jan-2030 00:00:00 GMT; path=/;\n";

my $main = HTML::Template->new(filename => './tpl/main.tpl');

上記テンプレート内にでクッキーの内容は表示されます。

■b.cgi

use CGI;
use HTML::Template;

my $q = CGI->new;
my $readid = $q->cookie("id");
$main->param(READID => $readid);

■エラー内容
[error] Can't call method "param" on an undefined value
[error] Premature end of script headers: b.cgi

よろしくお願いいたします。