15.03.2020 Views

perl-language-es

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Mientras que Perl por defecto intentará usar las palabras peladas como cadenas, el modificador +

también se puede usar para indicar a Perl que la clave no debe interpolarse sino ejecutarse, y el

resultado de la ejecución se usa como una clave:

my %employee = ( name => 'John Doe', shift => 'night' );

# this example will print 'night'

print $employee{shift};

# but this one will execute [shift][1], extracting first element from @_,

# and use result as a key

print $employee{+shift};

Al igual que con las matrices, puede acceder a varios elementos hash al mismo tiempo. Esto se

llama una porción de hash . El valor resultante es una lista, así que use @ sigil:

my @words = @translations_of_hello{'spanish', 'german'}; # ('Hola', 'Hallo')

Iterar sobre las claves de un hash con keys keys devolverá los elementos en un orden aleatorio.

Combina con el sort si lo deseas.

for my $lang (sort keys %translations_of_hello) {

say $translations_of_hello{$lang};

}

Si no necesita las claves como en el ejemplo anterior, los values devuelven los valores de hash

directamente:

for my $translation (values %translations_of_hello) {

say $translation;

}

También puede usar un bucle while con each para iterar sobre el hash. De esta manera, obtendrá

la clave y el valor al mismo tiempo, sin una búsqueda de valor por separado. Sin embargo, se

desaconseja su uso, ya que each puede romper en formas de confusión.

# DISCOURAGED

while (my ($lang, $translation) = each %translations_of_hello) {

say $translation;

}

El acceso a los elementos no configurados devuelve undef, no un error:

my $italian = $translations_of_hello{'italian'}; # undef

map y el aplanamiento de listas se pueden utilizar para crear hashes a partir de matrices. Esta es

una forma popular de crear un 'conjunto' de valores, por ejemplo, para verificar rápidamente si un

valor está en @elems . Esta operación generalmente toma tiempo O (n) (es decir, proporcional al

número de elementos) pero se puede hacer en tiempo constante (O (1)) al convertir la lista en un

hash:

https://riptutorial.com/es/home 118

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!