Perl CGI com códigos de status HTTP

Eu tenho a seguinte validação em um script CGI que irá verificar o método GET e retornar um código de status 405 HTTP se o método GET não for usado. Infelizmente, ainda está retornando um status 200 OK ao usar POST ou PUT.

my ($buffer);
# Read in text
$ENV{'REQUEST_METHOD'} =~ tr/a-z/A-Z/;
if ($ENV{'REQUEST_METHOD'} eq "GET")
{
    $buffer = $ENV{'QUERY_STRING'};
}
else
{
    $cgi->$header->status('405 Method Not Allowed')
    print $cgi->header('text/plain');
}

Eu ainda sou novo na programação CGI, então imaginei que alguém aqui poderia me dar um jeito de trabalhar com retornos de status CGI e HTTP. Se um bom documento CGI é fornecido, isso seria incrível, pois a maioria retornada pela pesquisa é CPAN (já lida algumas vezes) e tutoriais realmente antigos que não são orientados a objetos.

questionAnswers(1)

yourAnswerToTheQuestion