Digamos en Perl Tengo una lista de referencias hash, y cada uno debe contener un campo determinado, digamos foo
. Quiero crear una lista que contenga todas las asignaciones de foo
. Si hay un hash que no contiene foo
, el proceso debería fallar.Perl, obtenga todos los valores hash
@hash_list = (
{foo=>1},
{foo=>2}
);
my @list =();
foreach my $item (@hash_list) {
push(@list,$item->{foo});
}
#list should be (1,2);
¿Hay una manera más concisa de hacer esto en Perl?
Solo quería aclarar que no está creando una lista de asignaciones, está creando una lista que consta de cada hashes 'foo' value, y su ejemplo de código no tiene nada que ver con 'process failing', por lo que No solo estoy pidiendo más conciso. –
En general: siempre que te encuentres haciendo 'foreach ... {... push ..}' puedes hacer el código más corto y más simple usando map o grep. – Ether