I just installed
DBD::Google which is really neat actually. Anyway " SELECT * " does not return the URL column while " SELECT *, URL " does. Even with the query that does return the URL the hash key is lowercase and the column in the SQL is uppercase. Why does the URL column does not show up unless it is explicitly asked for? Below is the code I am using and what I am getting back for results.
When I query:
SELECT *, URL FROM google WHERE q = "perl monks" LIMIT 1
I see the URL for the search result like:
$VAR1 = {
'cached_size' => '',
'snippet' => '',
'_u_r_l' => '',
'summary' => 'Contains tutorials, discussion forums, <b>Perl</b> p
+oetry, obfuscated code, and a large code repository.',
'directory_category' => '',
'url' => 'http://www.perlmonks.org/',
'host_name' => '',
'title' => '',
'directory_title' => ''
};
When I query:
SELECT * FROM google WHERE q = "perl monks" LIMIT 1
I get this result back:
$VAR1 = {
'cached_size' => '',
'snippet' => '',
'_u_r_l' => '',
'summary' => 'Contains tutorials, discussion forums, <b>Perl</b> p
+oetry, obfuscated code, and a large code repository.',
'directory_category' => '',
'host_name' => '',
'title' => '',
'directory_title' => ''
};
And of course the whole program:
use DBI;
use strict;
use Data::Dumper;
my $KEY = "See http://www.google.com/apis/ to get a key.";
my $dbh = DBI->connect("dbi:Google:", $KEY)
or die("Can't connect to DB: " . $!);
my $sth = $dbh->prepare(qq[
SELECT *, URL FROM google WHERE q = "perl monks" LIMIT 1
])
or die("Can't prepare query: " . $!);
$sth->execute()
or die("Can't execute query: " . $!);
while (my $r = $sth->fetchrow_hashref) {
print Dumper($r), "\n";
}