Hola:
Tu problema podría estár en que no te estás conectando a la base de datos correctamente, o que no se están leyendo bien los datos, o en varias cosas que podrían estár saliendo mal sin que te des cuenta. Es por ello que es muy importante que cuando hagas tus scripts siempre pongas revisiones de errores, por ejemplo, tu código lo podrías cambiar por algo así:
Código:
#!/usr/bin/perl -w
use strict;
use CGI::Carp qw(fatalsToBrowser);
use DBI;
print "Content-type: text/html \n\n";
print "<html><head><title>Resultados</title></head><body>";
my $dbh = DBI->connect("dbi:Pg:database=db_proyecto", '', '',
{PrintError => 1, RaiseError => 1});
my $sth = $dbh->prepare('SELECT * FROM usuarios') or die("No se pudo preparar el query: " . $dbh->errstr);
$sth->execute() or die("No se pudo ejecutar el query: " . $sth->errstr);
while ( my @row = $sth->fetchrow_array() ){
print "<b>$row[0]\t$row[1]</b>";
}
$sth->finish();
$dbh->disconnect or die("No me pude desconectar del DB: " . $dbh->errstr);
print "</body></html>";
exit (1);
Ahora tendrás un error en el caso de que falle alguna parte de la conexión con tu database. Prueba ejecutar el script a ver que error te muestra.
Saludos