• Publicidad

Elemento en array

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

Elemento en array

Notapor fgalves » 2006-12-29 05:32 @272

Hola a todos de nuevo,

El caso es que quiero saber si un elemento dado está incluido en un array (@array).

¿Existe alguna instrucción del tipo:
Código: Seleccionar todo
$element in @array

que me devuelva directamente cierto si dicho elemento se encuentra en el array, o hay que implementar un bucle para obtener la respuesta?

Muchas gracias!!
Felipe
fgalves
Perlero nuevo
Perlero nuevo
 
Mensajes: 210
Registrado: 2006-09-25 13:54 @621

Publicidad

Notapor explorer » 2006-12-29 05:50 @284

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl -l
use strict;
use warnings;

my @x = (1,2,3,4,5,6,6,7,7,8,8,9,"cosa",23,45);

if ( grep { "cosa"} @x ) {
    print "Tienes una cosa";
}
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

Podrían servir también los módulos List::Util y List::MoreUtils.
Última edición por explorer el 2007-01-15 18:04 @794, editado 1 vez en total
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

Notapor fgalves » 2006-12-29 07:40 @361

Tienes toda la razon Explorer... :(
Tengo una "cosa" brutalmente critica, y es mi desconocimiento de Perl y quizas, mis dudas planteadas a veces un poco precipitadamente.
Siento mucho si te he ofendido y he captado el "mensaje".

Saludos,
Felipe
fgalves
Perlero nuevo
Perlero nuevo
 
Mensajes: 210
Registrado: 2006-09-25 13:54 @621

Notapor Perl user » 2006-12-29 12:51 @577

explorer escribiste:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl -l
use criticism 'brutal';
use strict;
use warnings;

my @x = (1,2,3,4,5,6,6,7,7,8,8,9,"cosa",23,45);

if ( grep { "cosa"} @x ) {
    print "Tienes una cosa";
}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Podrían servir también los módulos List::Util y List::MoreUtils.


Buscar UN elemento con grep no es la manera de hacerlo, grep no se detiene con el primer elemento, recuerda que es una función de alto orden y filtrará toda la lista.

Tu segunda recomendación es mejor, utilizar List::Util::first.

Saludos,
Marco A. Manzo
[email protected]
http://www.unixmonkeys.com/amnesiac/
Perl Programming Language
Perl user
Maestro honorario
Maestro honorario
 
Mensajes: 271
Registrado: 2004-11-03 21:11 @924

Notapor explorer » 2006-12-29 17:48 @783

fgalves escribiste:Siento mucho si te he ofendido
No me has ofendido... y las dudas que planteas sirven para mucho. Entre otras cosas, para que los novatos aprendan y los que no somos novatos recibamos la reprimenda de Perl User ;-)
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

Notapor explorer » 2007-01-15 19:06 @837

Ya que Perl6 está a la vuelta de la esquina (o algo así), esta es otra forma de hacerlo, con nuestro querido Perl 5.8:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl

use Perl6::Junction 'any';

my @x = (1,2,3,4,5,6,6,7,7,8,8,9,"cosa",23,45);

if ( any(@x) eq 'cosa' ) {
    print "Tienes una cosa \n";
}
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: No hay usuarios registrados visitando el Foro y 0 invitados