Perl CGI con códigos de estado HTTP

Tengo la siguiente validación en una secuencia de comandos CGI que buscará el método GET y devolverá un código de estado HTTP 405 si no se usa el método GET. Desafortunadamente, todavía está devolviendo un estado 200 OK cuando se usa POST o 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');
}

Todavía soy nuevo en la programación de CGI, así que me imaginé que alguien aquí me podría contar acerca de cómo trabajar con CGI y las devoluciones de estado HTTP. Si se proporciona un buen documento CGI que sería impresionante, ya que la mayoría de los resultados de búsqueda son CPAN (ya leído algunas veces) y tutoriales realmente antiguos que no están orientados a objetos.

Respuestas a la pregunta(1)

Su respuesta a la pregunta