Perl, Hash tablic: dodawanie i usuwanie kluczy, dodawanie do tablicy, wszystko w jednej pętli

Mam hash, który powinien zawierać pewne klucze, które są połączone z ich własnymi tablicami. Mówiąc dokładniej, klucze skrótu są wartościami jakości, a tablice są nazwami sekwencji. Jeśli istnieje już tablica dla tej jakości, chciałbym dodać nazwę sekwencji do tablicy powiązanej z daną jakością. Jeśli nie ma takiego, chcę go utworzyć i dodać do niego nazwę sekwencji. Wszystko to odbywa się w pętli chwilowej, przechodząc kolejno przez wszystkie sekwencje.

Próbowałem robić takie rzeczy jak wPerl Jak pobrać tablicę z tablicy mieszania? ale nie mogę tego zrobić dobrze.

Po prostu dostaję następujące komunikaty o błędach: Wartość skalarna @ {hash {$ q} lepiej zapisana jako $ {hash {$ q} w asdasd.pl wiersz 69. Globalny symbol „@q” wymaga jawnej nazwy pakietu asdasd.pl linia 58. kilka innych też.

Oto przykład tego, co próbowałem:

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;
    }
}

To oczywiście nie powinno być bardzo skomplikowanym problemem, ale jestem nowy w perlu i ten problem jest trudny. Wyszukałem to z różnych miejsc, ale wydaje mi się, że jest coś, czego po prostu nie zdaję sobie sprawy, i może to być naprawdę oczywiste.

questionAnswers(2)

yourAnswerToTheQuestion