Buenas!
Recientemente he empezado a trabajar con Perl, CGI, etc.... y ando un  poco perdido.
Mi problema es el siguiente: he creado un pequeño formulario para que la gente introduzca un texto, y dicho texto lo quiero traducir llamando a un programa de Perl que lo tengo guardado en /lib/cgi-bin/ que se conecta a Google y utilizando las API de Google Translate me devuelva el resultado.
El formulario es el siguiente (sencillito) y lo he guardado en / var / ww:
1.
Method = post <FORM action="cgi-bin/ApiPerl">
2.
Web Translator
3.
BORDER=0> <TABLE
4.
<TR>
5.
<TD> Introduzca el texto a traducir </ TD>
6.
<TD>
7.
Filas = "3" <TEXTAREA name="textointroducido"> entrada
8.
</ TEXTAREA>
9.
10.
</ TD>
11.
</ TR>
12.
13.
<TR>
14.
<td COLSPAN=2>
15.
Name = "Traducir" <INPUT type="submit" value="traducir">
16.
</ TD>
17.
</ TR>
18.
</ TABLE>
19.
</ FORM>
Comencé a crear el script en Perl que toma la variable "textointroducido" (que es el texto que queremos traducir) y usando las APIs de google translate quiero que me lo devuleva en una variable para mostrarla en una pagina html.
   1.
      use strict;
   2.
      use CGI;
   3.       
   4.
      my $form = new CGI;
   5.
      my $txt = $form ->param('textointroducido');
En este punto, consigo guardar el texto introducido por el usuario ("textointroducido") en $txt. Ahora mi problema es a la hora de hacer las llamadas Google.
He encontrado un programa escrito en perl que traduce del Inglés al francés (en mi caso yo quiero que traduzca de ingles a español..pero bueno sirve de ejemplo) el problema de este programa es que el texto que queremos traducir es introducido a través de la entrada estándar . Aqui os muestro el codigo
   1.
      #!/usr/bin/perl
   2.       
   3.
      use REST::Client;
   4.
      use JSON;
   5.
      use HTML::Entities qw(decode_entities);
   6.       
   7.       
   8.
      while (1)
   9.
      {
  10.
          print "Please enter English word: ";
  11.
          chop ( $_ = <STDIN>);
  12.         
  13.
          my $client = REST::Client->new();
  14.
          $client->GET("@de la API de google"); --Lo pongo asi porque no me deja poner la url en el foro
  15.
          $response = $client->responseContent();
  16.       
  17.
          $json_text = from_json( $response );
  18.       
  19.
          foreach my $french(@{$json_text->{data}->{translations}})
  20.
          {
  21.
              my %ep_hash = ();
  22.
              $ep_hash{translatedText} = "Translated to French: $french->{translatedText}";
  23.       
  24.
              # print french
  25.
              while (my($key, $value) = each (%ep_hash))
  26.
              {
  27.
                  print decode_entities($value);
  28.
              }
  29.
          }
  30.
          print "n";
  31.
      }
Bueno, he tratado de integrar el código escrito por mí en este programa de perl y nada. He leído que a lo mejor hay que codificar la variable $txt URI:: Encode para integrarlo en la URL...no sé...he estado leyendo y tampoco se  cómo se haria ..
Bueno, a ver si alguien me puede ayudar o si alguien sabe de alguna manera más fácil de hacer lo que quiero que me lo comente...cualquier comentario o sugerencia es bienvenida.
Gracias!
Un Saludo!