Bienvenido a los foros de Perl en español, Poldon.
Las
listas enlazadas se pueden construir fácilmente en Perl, siguiendo la definición clásica de las listas: cada elemento (nodo) de la lista es una estructura que contiene un valor (la información), una referencia al siguiente nodo de la lista y, opcionalmente, una referencia al nodo anterior.
Birei y pvaldes se refieren a las listas de elementos que se crean con los
array y
hash de Perl. En los
array, solo tenemos un valor escalar como información del nodo, y no hay referencias a los nodos antecedentes y consecuentes porque todos los nodos están indexados por su posición, así que es fácil moverse entre ellos. Y en los
hash, los valores se indexan de forma directa a través de su clave.
Tienes razón de que en Perl se use muy poco, y es porque con los
hash y
array se resuelven de forma cómoda los problemas que de forma clásica resolvían las listas enlazadas.
Una de las muchas formas de hacerlo en Perl, sería así:
Using perl Syntax Highlighting
sub agregar_nodo {
my($info, $nodo_anterior) = @_; # los parámetros son la información a guardar y el nodo anterior en la lista
my $nodo; # creamos el nuevo nodo
$nodo_anterior->{next} = \$nodo; # unimos el nodo al nodo anterior (nodo anterior deja de ser el último)
$nodo->{info} = $info; # guardamos la información
$nodo->{next} = 0; # Marcamos el nodo como último de la lista
return \$nodo;
}
Coloreado en 0.005 segundos, usando
GeSHi 1.0.8.4
En CPAN hay algunos módulos que implementan los algoritmos clásicos de las listas. Por ejemplo: