Página 1 de 1

Pregunta de niño sobre arreglos en Perl

NotaPublicado: 2006-08-14 10:16 @469
por danimera
Código: Seleccionar todo
$coins[0];
$coins[1];
$coins[2];
$coins[3];

Pretendo eliminar un elemento del array, puede ser el 2, pero quiero eliminar este elemento y que los demas suban de posición sin tener que crear otro array a partir de este y que sólo me pase los elementos que deseo tener y no me pase el elemento que no deseo, como sería esto, yo tengo este ejemplo
Código: Seleccionar todo
@coins=("brazil","alemania","colombia","peru");
$i = 0;
foreach $moneda (@coins) {
    if ($moneda ne "alemania") {
        $latinas[$i] = $moneda;
    }
    $i++;
}

¿?¿?¿?¿?Pero cual sería la forma más correcta de hacerlo.?¿?¿?¿?¿?

NotaPublicado: 2006-08-14 11:14 @510
por explorer
Pues si quieres borrar un elemento, usa splice:
Código: Seleccionar todo
@coins = qw( brazil alemania colombia peru );
splice( @coins, 2, 1 );
print "@coins"; # brazil alemania peru

O delete si estás seguro de que quieres eliminar el último elemento.

NotaPublicado: 2006-08-14 12:18 @554
por danimera
Código: Seleccionar todo
@coins = qw( brazil alemania colombia peru );
splice( @coins, 2, 1 );# ((((el dos significa el índice 2 que significa el 3º)))
print "@coins"; # brazil alemania peru

Entonces después de eliminar el indice 2 el contenido del 3 pasará al índice 2 ¿?¿

NotaPublicado: 2006-08-14 12:35 @566
por kidd
danimera escribiste:entocnes despues de eliminar el indice 2 el contenido del 3 pasara al indice 2,, ¿?¿


Si usas el método de splice, así es.


Saludos