package Acme::Math::Google; use 5.008001; use strict; use warnings; our $VERSION = sprintf "%d.%02d", q$Revision: 0.2 $ =~ /(\d+)/g; use URI; use LWP::UserAgent; sub new{ my $class = shift; my $self = shift || {}; $self->{base_uri} ||= 'http://www.google.com/search'; unless ($self->{ua}){ my $ua = LWP::UserAgent->new; $ua->agent( __PACKAGE__ . '/' . $VERSION ); $self->{ua} = $ua; } return bless $self, $class; } sub calc{ my $self = shift; my $query = shift; my $as_equation = shift; my $uri = URI->new($self->{base_uri}); $uri->query_form( q => $query); my $res = $self->{ua}->get($uri); return unless $res->code == 200; my $ans = $res->content; $ans =~ s{.*/images/calc_img.gif}{}xmso; $ans =~ s{.*?}{}xmso; $ans =~ s{.*}{}xmso; return $ans if $as_equation; $ans =~ s{.*=\s+}{}xmso; return $ans; } 1; __END__ # Below is stub documentation for your module. You'd better edit it! =head1 NAME Acme::Math::Google - Let Google do the math =head1 SYNOPSIS use Acme::Math::Google; my $amg = Acme::Math::Google->new; print $amg->calc('e**(i*pi)'); # -1 print $amg->calc('e**(i*pi)', 1); # 'e ** (i * pi) = -1' # WWW::Google::Calculator compat =head1 DESCRIPTION Need I say more than above? =head2 EXPORT None. =head2 Acme::Math::Google vs. WWW::Google::Calculator Darn, another wheel reinvented. This module does essentially the same as L but much simpler. All you need is L and L whereas L demands L, L and L. =head1 SEE ALSO L L =head1 AUTHOR Dan Kogai, Edankogai@dan.co.jpE =head1 COPYRIGHT AND LICENSE Copyright (C) 2006 by Dan Kogai This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available. =cut