I did more checking. This time on doing cursors in perl. The key here is to go to the PostgreSQL web site and search the archives for 'cursors perl'. That yields the example (from http://archives.postgresql.org/pgsql-general/2001-01/msg01569.php:
use Pg;
my $conn = Pg::connectdb("dbname = test");
my $result = $conn->exec("begin work");
$result = $conn->exec("declare c1 cursor for select foo
from bar");
$result = $conn->exec("fetch forward 1 in c1;");
print "Hurray, I fetched a row: ",
$result->fetchrow,
$/;
$result = $conn->exec("end work;");
__SIG__
use B;
printf "You are here %08x\n", unpack "L!", unpack "P4", pack
"L!", B::svref_2object(sub{})->OUTSIDE;