独自の配列にリンクされている特定のキーを含む必要があるハッシュがあります。より具体的には、ハッシュ キーは品質値であり、配列はシーケンス名です。その品質の配列が既にある場合は、問題の品質にリンクされている配列にシーケンス名を追加したいと思います。存在しない場合は、作成してシーケンス名を追加したいと思います。これはすべて while ループで実行され、すべてのシーケンスを 1 つずつ実行します。
Perlのようなことをしようとしました。配列のハッシュから配列を取得するにはどうすればよいですか? しかし、私はそれを正しく理解できないようです。
次のようなエラー メッセージが表示されます: Scalar value @{hash{$q} better written as ${hash{$q} at asdasd.pl line 69. Global symbol "@q" requires explicit package name asdasd.pl line 58. And他にもいくつか。
これが私が試したものの例です:
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;
}
}
これは明らかに非常に複雑な問題ではないはずですが、私は perl を初めて使用するので、この種の問題は難しく感じます。いろいろなところからググってみたのですが、自分でもわからないところがあり、それも当たり前のことなのかもしれません。