ランダムな品質スコアを持つ 10 個のランダムなシーケンスを含むFASTQ ファイルを生成しようとしています。私はもともと次のコードを使用していましたが、うまくいきました。
my @seq = (rand_fa_seq() for ^10);
my @qual = (rand_qual() for ^10);
@seq.perl.say;
@qual.perl.say;
sub rand_fa_seq
{
return join("", roll(20,"ACGT".comb));
}
sub rand_qual
{
return join("", roll(20,"EFGHIJ".comb))
}
しかし、もっと簡単にしたいので、右辺の括弧を外せばいいのではないかと考えました。私がそうしたとき、私は と に単一の要素しか得ませんでし@seq
た@qual
。
my @seq = rand_fa_seq() for ^10;
my @qual = rand_qual() for ^10;
@seq.perl.say;
@qual.perl.say;
sub rand_fa_seq
{
return join("", roll(20,"ACGT".comb));
}
sub rand_qual
{
return join("", roll(20,"EFGHIJ".comb))
}
これはバグですか、それとも本来あるべき動作ですか? 括弧がなければ、これはスカラー コンテキストですか? Great List Refactorはこの動作を変更しますか?
この動作を確認した Perl 6 インタープリターのバージョン:
MoarVM:
perl6 バージョン 2015.03-204-g8578022 MoarVM バージョン 2015.03-60-g36d56f7 上に構築
JVM:
perl6 バージョン 2015.03-305-ga95107d JVM Java バージョン "1.7.0_79" 上に構築
OpenJDK ランタイム環境 (rhel-2.5.5.1.el7_1-x86_64 u79-b14
)