Ayuda en Perl

Iniciado por MR. NALI, Diciembre 27, 2005, 07:29:39 PM

Tema anterior - Siguiente tema

MR. NALI

Miren, lo que pasa es que ultimamente empecé a aprender Perl y a viciarme haciendo experimentos, hice mi primer programa serio llamado Minimal Money Data Base, MiMoDaBa, ya estoy pronto a sacar la version 0.03, visitar mi blog para más info:
cabmill.blogspot.com , aqui va el codigo:


#!/usr/bin/perl
# Minimal Money Data Base 0.03 Copyleft Cesar Bravo 2005
# Este programa puede usarse sin restriccion alguna.


print "¿Te gustaria entrar al modo escribir Moneda(m) o Escribir Pais(p)?";
$respuesta=<STDIN>;chop($respuesta);

if ($respuesta eq "m")
{
 print "Has eligido entrar al modo Escribir Moneda, esto significa que tendras que escribir la moneda y sabras de que pais es...\n";

print"Escribe la moneda(en minusculas) para saber su pais: ";
$moneda=<STDIN>;chop($moneda);

if ($moneda eq "peseta")
{
 print "El pais del que proviene tal moneda es Espana, aunque tambien se usa el Euro\n";
}
elsif ($moneda eq "dolar")
{
print "El pais del que proviene tal moneda es EEUU\n";
}
elsif( $moneda eq "escudo")
{
 print "El pais del que proviene tal moneda es Portugal\n";
}
elsif ($moneda eq "peso")
{
 print "Pueden ser dos paises:Chile y Argentina\n";
}
elsif($moneda eq "sol")
{
 print "El pais es Peru\n";
}
elsif($moneda eq "libra")
{
 print "El pais del que proviene tal moneda es Inglaterra\n";
}
elsif ($moneda eq "euro")
{
 print "El Euro se usa en la mayoria de Europa\n"
}
elsif ($moneda eq "yen")
{
 print "El pais del que proviene tal moneda es el Yen";
}
else
{
print "Esa moneda no esta en la base de datos, debes escribirlo en minusculas\n";
}
print"Ahora, escribe si quieres continuar(si) o no quieres continuar(no): ";
$moneda1=<STDIN>;chop($moneda1);
if ($moneda1 eq "no")
{
 print "Hasta luego\e";
}
elsif ($moneda1 eq "si")
{
 print "$moneda";
}


{
elsif ($respuesta eq "p")
{
 print "Ha eligido entrar al modo Escribir Pais, esto significa que tendra que escribir el Pais y sabras su moneda...\n";
}
print"Escribe el pais(en minusculas) para saber su moneda:";
$pais=<STDIN>;chop($pais);

if ($pais eq "chile")
{
 print "Chile tiene como moneda el Peso Chileno\n";
}
elsif ($pais eq "argentina")
{
 print "Argentina tiene como moneda el Peso Argentino\n";
}
elsif ($pais eq "peru")
{
 print "Peru tiene como moneda el Sol\n";
}
elsif ($pais eq "estados unidos")
{
 print "Estados Unidos tiene como moneda el Dolar\n";
}
elsif ($pais eq "eeuu")
{
 print "eeuu tiene como moneda el Dolar\n";
}
elsif ($pais eq "portugal")
{
 print "Portugal tiene como moneda el Escudo\n";
}
elsif ($pais eq "espana")
{
 print "Espana tiene como moneda la Peseta, aunque se usa muchisimo el Euro\n"
}
elsif ($pais eq "inglaterra")
{
 print "Inglaterra tiene como moneda la Libra\n"
}
elsif ($pais eq "japon")
{
 print "Japon tiene como moneda el Yen\n";
}
else
{
 print "Ese pais no esta en la base de datos, debes escribirlo en minusculas\n";
}



elsif ($respuesta ne "m","p")
{
 print "Ha escrito mal el modo, por favor escriba m o p\n";
}
print "Por favor escriba otra vez el modo, Escribir Moneda(m) o Escribir Pais(p):";
$respuesta2=<STDIN>;chop($respuesta2);

if ($respuesta2 ne "m","p")
{
 print "Lo siento, ha vuelto a escribir mal el modo\e";
}



Ahora el gran problema es este, al tratar de compilar:

[cesar@pc-52-53-239-201 MiMoDaBa]$ ./MiMoDaBa\ 0.03
syntax error at ./MiMoDaBa 0.03 line 65, near "{
elsif"
syntax error at ./MiMoDaBa 0.03 line 115, near "elsif"
Execution of ./MiMoDaBa 0.03 aborted due to compilation errors.


Cómo se podría arrglar el problema? De todas formas, tengo algo de tiempo, hasta 3 días más para lanzar la nueva versión del programa.

Lo que hace este programa es:
Tienes que elegir un modo, Escribir Moneda o Escribir Pais, despues de haber seleccionado el modo, tienes que ingresar el nombre de una moneda o del pais dependiendo el modo al que has entrad, esto te dara de que pais es la moneda o que moneda tiene tal pais.
Gracias.[/i]
Perl (usualmente con Gtk2) Coder.
Dream Theater Fan.
Linux user Nº401597

Eye del Cul

El compilador te está diciendo que tienes de sintaxis.
Yo creo que lo que falla es esto:

print "El Euro se usa en la mayoria de Europa\n"
Citarprint "El Euro se usa en la mayoria de Europa\n";

Hay algún otro punto y coma que también te has dejado por poner...
En la línea 64 hay una llave abierta ({) que no sirve para nada.

Y vamos, yo diría que es eso...
Prueba a ver qué tal.
«Porque buscar a alguien patético en Internet es como buscar caballos en un establo: encontrarás alguno, seguramente» -- Phobos Anomaly

FireMaster

Perl????????? eso que es, parece algo asi como la programacion C++ aunque tampoco es lo mismono no???? que coño es Perl??????


FRAG EM ALL!!!!!!

MR. NALI

Cita de: "Eye del Cul"El compilador te está diciendo que tienes de sintaxis.
Yo creo que lo que falla es esto:

print "El Euro se usa en la mayoria de Europa\n"
Citarprint "El Euro se usa en la mayoria de Europa\n";

Hay algún otro punto y coma que también te has dejado por poner...
En la línea 64 hay una llave abierta ({) que no sirve para nada.

Y vamos, yo diría que es eso...
Prueba a ver qué tal.

A ver ahora:
./MiMoDaBa\ 0.03
Missing right curly or square bracket at ./MiMoDaBa 0.03 line 124, at end of line
syntax error at ./MiMoDaBa 0.03 line 124, at EOF
Execution of ./MiMoDaBa 0.03 aborted due to compilation errors.

Pero ya arreglé todo lo que me has dicho, y en la línea 124 hay un simple "}" para cerrar print, mejor voy a hacer todo el código otra vez, he leído un poco de él y parece que está mal desde la línea 52 a la 61, la escribiré de nuavo...

Y para firemaster:
Perl es un lenguaje de programación orientado al UNIX para ejecutar en consola, no se podría decirque está orientado a objetos, pero tampoco se podría decir que es de bajo nivel.. Lo encuentras parecido a C++, jaja, he visto scripts en C y no los veo "muy" parecidos entre sí.
Gracias, voy a arreglar las líneas 52 a la 61 que parece que no hacen nada.
Perl (usualmente con Gtk2) Coder.
Dream Theater Fan.
Linux user Nº401597