• Publicidad

Dobles condiciones

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

Dobles condiciones

Notapor alexclipse » 2012-05-25 13:27 @602

Hola. Tengo una duda bastante simple pero que me es bastante importante.

Por ejemplo, tengo un archivo de texto con este contenido:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
perro
gato
vaca
gallina
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Bien, simplemente quiero que si el archivo tiene perro y vaca, por ejemplo, me imprima algo.
Si contiene uno solo es sencillo, uso if ($linea =~ /perro/) {...} pero ¿si quiero perro y vaca? Gracias.
alexclipse
Perlero nuevo
Perlero nuevo
 
Mensajes: 43
Registrado: 2012-03-27 11:17 @511

Publicidad

Re: Dobles condiciones

Notapor explorer » 2012-05-25 17:52 @786

(No probado)
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/env perl
  2. use Modern::Perl '2012';
  3. use utf8::all;
  4. use autodie;
  5. use File::Slurp;
  6.  
  7. my @animales = read_file('archivo.txt', chomp => 1);
  8.  
  9. # una forma
  10. if ('perro' ~~ @animales) {
  11.     if ('vaca' ~~ @animales) {
  12.         say 'Encontrado perro y vaca';
  13.     }
  14. }
  15.  
  16. # otra forma, más tradicional
  17. my %animales = map { $_ => 1 } @animales;
  18.  
  19. if ($animales{'perro'} and $animales{'vaca'}) {
  20.     say 'Encontrado perro y vaca';
  21. }
  22.  
  23. # otra forma... contando.
  24. # Pero solo funcionará si todos los animales son distintos y
  25. # solo aparecen una vez
  26. my $conteo = 0;
  27. for my $animal (@animales) {
  28.     if ($animal eq 'perro'  or  $animal eq 'vaca') {
  29.         $conteo++;
  30.     }
  31. }
  32. if ($conteo == 2) {
  33.     say 'Encontrado perro y vaca';
  34. }
  35.  
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
Seguro que hay más formas...
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


Volver a Básico

¿Quién está conectado?

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