• Publicidad

Problemas con bucle while

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Problemas con bucle while

Notapor mparrado8 » 2013-05-10 07:02 @335

No sé qué poner como título porque realmente no sé por qué no funciona el programa, más bien por qué no se ejecuta correctamente. Mi intención es que el bucle se repita mientras se introduzca un valor no válido, es decir: distinto de 'a', 'g', 'c' o 't'. Y haciendo diversos cambios lo único que hemos conseguido es: o que el primer dato introducido no lo reconozca como válido aunque lo sea, y el segundo sí aunque no lo sea, o que no reconozca ningún valor como válido.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. while($bas !~ [a,g,t,c])
  2. {print "Introduzca un nucleotido valido: \n";
  3. $bas = <STDIN>;
  4. chomp ($bas);
  5. }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
mparrado8
Perlero nuevo
Perlero nuevo
 
Mensajes: 32
Registrado: 2013-04-10 12:58 @582

Publicidad

Re: Problemas con bucle while

Notapor explorer » 2013-05-10 07:24 @350

Mejor así:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my $bas;                                                # declaramos nuestra variable
  2.  
  3. while ($bas !~ /[ACTG]/i) {                             # mientras $bas no contenga, al menos una, de esas cuatro letras...
  4.     print "Introduzca un nucleótido válido [ACTG]: ";   #  se lo pedimos al usuario
  5.     $bas = <STDIN>;                                     #  lo leemos desde la entrada estándar
  6.     chomp $bas;                                         #  le quitamos el final de línea
  7. }
  8.  
  9. $bas = lc $bas;                                         # lo pasamos a minúsculas
  10.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Los patrones de expresiones regulares deben estar rodeados por delimitadores. En este caso, los más sencillos son los '/', pero se pueden usar otros.

Le he puesto además la opción '/i', por si el usuario quiere meter la información tanto en minúsculas o mayúsculas. Más tarde, con la función lc(), lo pasamos siempre a minúsculas.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Problemas con bucle while

Notapor mparrado8 » 2013-05-12 12:56 @580

¡Jo, Muchísimas gracias! No sé que haría sin este foro.
mparrado8
Perlero nuevo
Perlero nuevo
 
Mensajes: 32
Registrado: 2013-04-10 12:58 @582


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 7 invitados