Я пытаюсь создать файлы FASTQ, содержащие 10 случайных последовательностей со случайными оценками качества. Изначально я использовал следующий код, который работал нормально:
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)
64-разрядная серверная виртуальная машина OpenJDK (сборка 24.79- b02, смешанный режим)