2010-05-20 11 views

Respuesta

14
$length = scalar(@{ $data{host} }); 
+1

y dicen que la sintaxis de Perl es intrincada (dice el tipo que ha estado usando Perl desde v2.x) – msw

+0

Siempre le digo a la gente que Perl está por delante de su tiempo :-) – Cfreak

+5

No es necesario 'escalar'. '$ length = @ {$ data {host}}' hubiera funcionado igual de bien. – Zaid

1

respuesta añadió a causa de msw's comment:

use autobox::Core; 
# ... 
$data{host}->length; 

Esto funciona de la misma como la respuesta de Cfreak, excepto con mucho menos enrevesada sintaxis, a costa de la utilización de un módulo.

Tengo la tesis de que la mayoría de las quejas legítimas sobre Perl se pueden responder simplemente con »No es necesario que sea así!« y satisfecho con una breve sinopsis de CPAN.

0

Si desea que el último índice, puede utilizar: $ # @ $ {datos}} {anfitrión

Obviamente, la longitud de la matriz es el índice de la última + 1. Utilice esta notación cuando es más difícil de lograr un contexto escalar, o cuando específicamente desea longitud-1. Por ejemplo:

0 .. $ # $ {datos {host}} # devuelve una lista de todos los índices de la matriz

En algún útil.

Cuestiones relacionadas