The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Google::Search - Interface to the Google AJAX Search API

VERSION

Version 0.022

SYNOPSIS

    my $key = ... # This should be a valid API key, gotten from:
                  # http://code.google.com/apis/ajaxsearch/signup.html

    my $referer = "http://www.mysite.com/index.html" # This should be a valid referer for the above key

    my $search = Google::Search->Web(q => "rock", key => $key, referer => $referer);
    my $result = $search->first;
    while ($result) {
        print $result->number, " ", $result->uri, "\n";
        $result = $result->next;
    }

    $search = Google::Search->Local(..., q => "rock");

    $search = Google::Search->Video(..., q => "rock");

    $search = Google::Search->Blog(..., q => "rock");

    $search = Google::Search->News(..., q => "rock");

    $search = Google::Search->Book(..., q => "rock");

    $search = Google::Search->Image(..., q => "rock");

    # You can also take advantage of each service's specialized interface
    # The search below specifies the latitude and longitude:
    $search = Google::Search->Local(..., q => { q => "rock", sll => "33.823230,-116.512110" }, ...);
    

DESCRIPTION

Google::Search is an interface to the Google AJAX Search API (http://code.google.com/apis/ajaxsearch/).

Currently, their API looks like it will fetch you the top 28 results for your search query.

According to the Terms of Service, you need to sign up for an API key here: http://code.google.com/apis/ajaxsearch/signup.html

METHODS

Google::Search->Web(...)

Create a new web search. See new for more information.

Google::Search->Local(...)

Create a new local search. See new for more information.

Google::Search->Video(...)

Create a new video search. See new for more information.

Google::Search->Blog(...)

Google::Search->Blogs(...)

Create a new blog search. See new for more information.

Google::Search->News(...)

Create a new news search. See new for more information.

Google::Search->Book(...)

Google::Search->Books(...)

Create a new book search. See new for more information.

Google::Search->Image(...)

Google::Search->Images(...)

Create a new book search. See new for more information.

Google::Search->new(...)

Create and return a new Google::Search object

You can configure the search by passing the following to new:

    q               The search phrase to submit to Google
                    Optionally, this can also be a hash of parameters to submit. You can
                    use the hash form to take advantage of each service's varying interface.
                    Make sure to at least include a C<q> parameter with your search.

    key             Your Google AJAX Search API key (see Description)

    referer         A referer that is valid for the above key

    service         The service to search under. This can be any of: web,
                    local, video, blog, news, book, or image.

$search->first

Returns a Google::Search::Result representing the first result in the search, if any.

Returns undef if nothing was found

$search->next

An iterator for $search. Will the return the next result each time it is called, and undef when there are no more results.

Returns a Google::Search::Result

Returns undef if nothing was found

$search->result( <rank> )

Returns a Google::Search::Result corresponding to the result at <rank>

These are equivalent:

    $search->result(0)

    $search->first

$search->all

Returns Google::Search::Result list which includes every result Google has returned for the query

In scalar context an array reference is returned, a list otherwise

An empty list is returned if nothing was found

$search->match( <code> )

Returns a Google::Search::Result list

This method will iterate through each result in the search, passing the result to <code> as the first argument. If <code> returns true, then the result will be included in the returned list

In scalar context this method returns the number of matches

$search->first_match( <code> )

Returns a Google::Search::Result that is the first to match <code>

This method will iterate through each result in the search, passing the result to <code> as the first argument. If <code> returns true, then the result will be returned and iteration will stop.

$search->error

Returns a Google::Search::Error if there was an error with the last search

If you receive undef from a result access then you can use this routine to see if there was a problem

    warn $search->error->reason;

    warn $search->error->http_response->as_string;

    # Etc, etc.

This will return undef if no error was encountered

AUTHOR

Robert Krimen, <rkrimen at cpan.org>

SEE ALSO

REST::Google::Search

BUGS

Please report any bugs or feature requests to bug-google-search at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Google-Search. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

    perldoc Google::Search

You can also look for information at:

ACKNOWLEDGEMENTS

COPYRIGHT & LICENSE

Copyright 2008 Robert Krimen, all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.