• Publicidad

Posición de valor dentro de matriz

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

Posición de valor dentro de matriz

Notapor Skull118 » 2014-11-13 13:11 @591

Amigos de Perl en español, espero tengan el mejor de los días y si no, desde ya se los deseo. Tengo una duda: ¿cómo puedo saber en qué posición de una matriz está situado un valor? En este caso, por ejemplo, algo así.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my @m=qw(jan feb mar apr may jun jul aug sep oct nov dec);
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

Y deseo buscar en qué posición aparece una variable
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my $i="may";
  2. # aquí necesito saber en qué posición aparece 'may' dentro de @m;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Muchas gracias de antemano.
Skull118
Perlero nuevo
Perlero nuevo
 
Mensajes: 53
Registrado: 2013-03-21 13:38 @610

Publicidad

Re: Posición de valor dentro de matriz

Notapor Aceitunas » 2014-11-13 13:56 @622

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2.  
  3. use feature 'say';
  4.  
  5. my @m = qw(jan feb mar apr may jun jul aug sep oct nov dec);
  6.  
  7. my $contador = 0;
  8.  
  9. my $i="may";
  10.  
  11. foreach $mes (@m)
  12. {
  13.     if ($mes eq $i)
  14.     {
  15.         say "Esta en la posición: $contador";
  16.         break;
  17.     }    
  18.     $contador++;
  19. }
  20.  
  21.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Voy a llegar hasta el final, voy a subir la velocidad - Migue Benítez.
Aceitunas
Perlero nuevo
Perlero nuevo
 
Mensajes: 117
Registrado: 2013-11-07 15:25 @684
Ubicación: Ciudad Real, España.

Re: Posicion de valor dentro de matriz

Notapor Skull118 » 2014-11-13 15:24 @683

Muchas gracias, Matrix, por tu respuesta, pero recuerdo que hay una función que devuelve el número sin realizar un bucle.
Skull118
Perlero nuevo
Perlero nuevo
 
Mensajes: 53
Registrado: 2013-03-21 13:38 @610

Re: Posicion de valor dentro de matriz

Notapor Aceitunas » 2014-11-13 17:07 @755

Hola, no soy Matrix, soy Aceitunas :lol:

A ver si es así como tú dices:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my @m = qw(jan feb mar apr may jun jul aug sep oct nov dec);
  2.  
  3. my $i = "may";
  4.  
  5. my ($contador) = grep {$m[$_] eq $i} 0 .. $#m;
  6.  
  7. print "$contador\n";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Voy a llegar hasta el final, voy a subir la velocidad - Migue Benítez.
Aceitunas
Perlero nuevo
Perlero nuevo
 
Mensajes: 117
Registrado: 2013-11-07 15:25 @684
Ubicación: Ciudad Real, España.

Re: Posicion de valor dentro de matriz

Notapor Skull118 » 2014-11-13 18:18 @804

Exacto y perdón por lo de Matrix :D
Skull118
Perlero nuevo
Perlero nuevo
 
Mensajes: 53
Registrado: 2013-03-21 13:38 @610

Re: Posición de valor dentro de matriz

Notapor explorer » 2014-11-13 20:29 @895

Como son pocos elementos, se puede usar un hash:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my @meses = qw(jan feb mar apr may jun jul aug sep oct nov dec);
  2. my %meses = map { $meses[$_] => $_ } 0 .. $#meses;
  3.  
  4. say $meses[4];          # may
  5. say $meses{'may'};      # 4
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
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: Bing [Bot] y 13 invitados