#  (gH)   -_-  mygoogle.pl  ;  TimeStamp (unix) : 09 Février 2006 vers 12:37

sub urlencode {

  $tlm= $_[0] ;
  #print " avant $tlm\n" ;
  $tlm =~ s/([^A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg;
  #print " après $tlm\n" ;

  return($tlm) ;

} ; # fin de urlencode

sub urldecode {
  $_ =~ s/\%([A-Fa-f0-9]{2})/pack('C', hex($1))/seg;
  return($_) ;
} ; # fin de urldecode


sub urlgoog {
  # url pour demander à google de rechercher l'expression passée en paramètre
  return("http://www.google.fr/search?hl=fr&q=".urlencode($_[0])) ;
} ; # fin fonction urlgoog

sub nbhits {

   $nbhi = 0 ;
   $url  = &urlgoog("tuteur perl") ;

##   print " url = $url \n" ;

   # on lit la page renvoyée par Google comme un fichier
   # le texte recherché ressemble à : sur un total d'environ <b>11</b> pour <b>tuteur perl</b>.

   $cmd     = "lynx -source '" ;
   $cmd    .= urlgoog(@_) ;
   $cmd    .= " ' | " ;

## print "\n   $cmd \n" ;

   # rappel : le '|' à la fin est indispensable pour excécuter la commande !

   # on lit la page renvoyée par Google comme un fichier
   # le texte recherché ressemble à : sur un total d'environ <b>11</b> pour <b>tuteur perl</b>.

   open(SOURCE,$cmd) || die (" problème avec lynx Google\n");
   $src = "" ;  while(<SOURCE>) { $src .= $_ ; } ;    $_ = $src ;
   while (m|sur un total d'environ <b>(.*?)</b> pour |gs) { $nbhi = $1 ; } ;

   # un peu de nettoyage

   $nbhi =~ s/ //seg ;
   $nbhi =~ s/&nbsp;//seg ;

   return($nbhi) ;

} ; # fin fonction nbhits

if ($ARGV[0] eq "") {
  print " syntaxe    :   mygoogle chaine_a_rechercher\n" ;
  print " exemple    :   mygoogle tuteur xml\n\n" ;
  die()
} ; # fin de si

$eac =  join(" ",@ARGV) ;
$ura =  &urlgoog("$eac") ;

print " Pour l'expression\"$eac\" soit l'url\n\n    $ura \n\n Google trouve sans doute " ;
print &nbhits($eac) ;
print " pages.\n" ;
print "\n" ;

print "\n" ;
print " Vous pouvez le vérifier en tapant\n\n " ;
print "   goog $eac\n" ;
print "\n" ;
