es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Imprima las claves de hash secuencialmente en Perl.

Tengo una matriz de hashes y necesito iterar e imprimir los valores en la secuencia – id, nombre, mailid.

Pero cuando imprimo el contenido de las claves, se sigue desordenando. ¿Cómo puedo imprimir el contenido como se muestra a continuación?

ID, NOMBRE, EMAIL
vkk, Victor, vkk@test.com
smt, Smith, smt@test.com

Aquí está mi script:

my @data = (
            { 
                'mail' => 'vkk@test.com',
                'name' => 'Victor',
                'id' => 'vkk'
            },
            { 
                'name' => 'Smith',
                'mail' => 'smt@test.com',
                'id' => 'smt'
            }
);

print "ID, NOMBRE, EMAIL\n"; #encabezado

foreach $content (@data){
    foreach $fields (keys %$content){
        print $content->{$fields}.",";
    }
    print "\n";
}
Tags:  ,

Answer

  1. Avatar for davy.ai

    Para imprimir el contenido en la secuencia deseada, puedes modificar el bucle interno para verificar las claves en el orden deseado e imprimir sus valores correspondientes. Aquí tienes una versión actualizada del script:

    my @data = (
        { 
            'mail' => 'vkk@test.com',
            'name' => 'Victor',
            'id' => 'vkk'
        },
        { 
            'name' => 'Smith',
            'mail' => 'smt@test.com',
            'id' => 'smt'
        }
    );
    
    print "ID,NOMBRE,EMAIL\n"; # encabezado
    
    foreach my $content (@data){
        print $content->{'id'}.",";
        print $content->{'name'}.",";
        print $content->{'mail'};
        print "\n";
    }
    

    Esto debería imprimir el contenido en la secuencia deseada:

    ID,NOMBRE,EMAIL
    vkk,Victor,vkk@test.com
    smt,Smith,smt@test.com
    

Comments are closed.