10. FUNCIONES DE ARREGLOS INCLUIDAS.

Los arreglos indexados funcionan como listas; se pueden añadir elementos o quitarlos de cualquier extremo usando las siguientes funciones :

		pop		quita el último valor del final del arreglo.

push añade valores al final del arreglo.

shift quita el primer valor al comienzo del arreglo.

unshift añade un valor al comienzo del arreglo.

Por ejemplo :

		push (@list, $bar);

push(@list, @rest);

$tos = pop(@list);

while ( $arg = shift(@ARGV) ) { }

unshift ( @ARGV, 'zeroth arg', 'first arg');

+ split

rompe un string en un arreglo de nuevos strings. Se pueden dividir en expresiones regulares arbitrarias, limitar el número de campos que se dividió, y guardar los delimitadores.

		@list = split(/[, \t]+/, $expr);

while () {

($login, $passwd, $uid, $gid, $gcos,

$home, $shell) = split(/:/);

}

+ El comando inverso de split es

join

:

		$line = join(':', $login, $passwd, $uid,$gid, $gcos, $home, 			
	$shell);

+ reverse :

invierte una lista.

		foreach $tick (reverse 0 .. 10) { }

+ sort :

regresa un nuevo arreglo con los elementos ordenados de acuerdo a sus valores ASCII.

			print sort @list

sub numerically { $a - $b ; }

print sort numerically @list;

+ grep :

regresa una nueva lista conteniendo todos los elementos para los cuales resulta verdadera alguna expresión. Por ejemplo, esto borrará todas las líneas que tengan como primer caracter un # :

			@lines = grep(!/^#/, @lines);

Para manejar arreglos asociativos, las funciones

key

y

value

regresan arreglos indexados de los índices y valores respectivamente. Cada uno es usado para iterar a través de un arreglo asociativo para obtener un par ($key,$value) cada vez.

			while (($key,$value) = each %array) 

{

printf "%s is %s\n", $key, $value;

}

foreach $key (keys %array)

{

printf "%s is %s\n", $key, $array{$key};

}

print reverse sort values %array



Volver