• Publicidad

Función para borrar pero con excepciones

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

Función para borrar pero con excepciones

Notapor BigBear » 2011-06-21 18:05 @795

Tengo la siguiente función que borra repetidos en un array

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. sub repes {
  2.  
  3.     my @no = ( "no", "si" );
  4.  
  5.     foreach my $palabra (@_) {
  6.         next if $repety{$palabra}++;
  7.         push @revisado, $palabra;
  8.     }
  9.     return @revisado;
  10. }
  11.  
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Mi duda es: ¿cómo tengo que hacer qué para que la función borre los repetidos
pero no los que están en el array @no?

¿ Alguien sabe ?
BigBear
Perlero frecuente
Perlero frecuente
 
Mensajes: 981
Registrado: 2009-03-01 18:39 @818

Publicidad

Re: Función para borrar pero con excepciones

Notapor morago » 2011-06-21 19:28 @853

No sé si te he entendido bien y quieres que se mantengan duplicados los de la lista @no.
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. sub repes {
  2.  
  3.     my @no = ( "no", "si" );
  4.  
  5.     foreach my $palabra (@_) {
  6.         if ( $repety{$palabra}++ ) {
  7.             foreach (@no) {
  8.                 if ( $_ eq $palabra ) { push @revisado, $palabra; }
  9.                 else                  { next; }
  10.             }
  11.         }
  12.         else {
  13.             push @revisado, $palabra;
  14.         }
  15.     }
  16.     return @revisado;
  17. }
  18.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Avatar de Usuario
morago
Perlero nuevo
Perlero nuevo
 
Mensajes: 10
Registrado: 2009-12-13 16:43 @738

Re: Función para borrar pero con excepciones

Notapor BigBear » 2011-06-21 20:11 @883

Mi cerebro a esta hora de la noche se está consumiendo poco a poco desde
esta mañana. El problema que tengo ahora es que tengo el siguiente array

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my @test = ("probar
  2. "doddy","probarx","doddy","control","mandar","probar","doddy","probarx","doddy","con","forear");
  3.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Mi plan es que quede así pero por la función quede así:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
probar
doddy
probarx
doddy
control
mandar
con
forear
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Pero no sé cómo ordenarlo y quede bien. ¿ Alguien tiene una idea ?
BigBear
Perlero frecuente
Perlero frecuente
 
Mensajes: 981
Registrado: 2009-03-01 18:39 @818

Re: Función para borrar pero con excepciones

Notapor explorer » 2011-06-22 04:51 @244

Pero... ¿qué reglas hay que aplicar para que salga ese listado?

Con estas líneas, se saca algo parecido:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2.  
  3. my @test = (
  4.     "probar", "doddy", "probarx", "doddy", "control", "mandar",
  5.     "probar", "doddy", "probarx", "doddy", "con",     "forear",
  6. );
  7.  
  8. my %no_filtrado = ("doddy" => 1);
  9.  
  10. my %visto;
  11.  
  12. my @filtrado = grep { $no_filtrado{$_} or ! $visto{$_}++ } @test;
  13.  
  14. print "@filtrado\n";
  15.  
  16. __END__
  17. probar doddy probarx doddy control mandar doddy doddy con forear
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: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Función para borrar pero con excepciones

Notapor BigBear » 2011-06-22 09:09 @423

Ese es el problema, explorer, veré cómo puedo evitar esto. Gracias a los dos por contestar.
BigBear
Perlero frecuente
Perlero frecuente
 
Mensajes: 981
Registrado: 2009-03-01 18:39 @818


Volver a Básico

¿Quién está conectado?

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

cron