Perl, un hash de matrices: agregar y eliminar claves, agregar a una matriz, todo en un bucle de tiempo

Tengo un hash que debe contener ciertas claves que están vinculadas a sus propios arreglos. Para ser más específicos, las claves hash son valores de calidad y las matrices son nombres de secuencia. Si ya existe una matriz para esa calidad, me gustaría agregar el nombre de la secuencia a la matriz que está vinculada a la calidad en cuestión. Si no hay uno, quiero crear uno y agregarle el nombre de la secuencia. Todo esto se hace en un bucle while, pasando por todas las secuencias una por una.

He tratado de hacer cosas como enPerl ¿Cómo recupero una matriz de un hash de matrices? Pero parece que no puedo hacerlo bien.

Acabo de recibir estos mensajes de error: el valor escalar @ {hash {$ q} se escribe mejor como $ {hash {$ q} en la línea 69 de asdasd.pl. El símbolo global "@q" requiere el nombre explícito del paquete de la línea 58 de asdasd.pl. Y algunos otros, también.

Aquí hay un ejemplo de lo que he intentado:

my %hash;
while (reading the sequences) {
    my $q = "the value the sequence has";
    my $seq = "the name of the sequence";

    if (exists $hash{$q}) {
        push (@{$hash{$q}}, $seq);
    } else {
        $hash{$q} = \@q;
        $hash{$q} = [$seq];
        next;
    }
}

Obviamente, esto no debería ser un problema muy complicado, pero soy nuevo en Perl y este tipo de problema es difícil. He buscado en Google desde varios lugares, pero parece que hay algo de lo que no me doy cuenta, y puede que también sea muy obvio.

Respuestas a la pregunta(2)

Su respuesta a la pregunta