Нужна помощь в определении цели некоторых команд Perls - PullRequest
0 голосов
/ 23 марта 2020

У меня есть скрипт Perl, который мне нужно понять, чтобы исправить ошибку в программе, которую я использую.

my %offsets;
my $def = ">gm_dna.fa_1   Sck3bRy_190_HRSCAF_380 CHUNK number:0 size:9149333 offset:0     1       8479";
my $file = "test1.fasta"


if($def =~ /^.*\; (\d+)$/){
     $offsets{Cwd::abs_path($file)} = $1;
}

Я никогда раньше не использовал Perl, и я потерян

Что должен делать этот скрипт (особенно блок if), что должны делать ($def =~ /^.*\; (\d+)$/) и $offsets{Cwd::abs_path($file)} = $1;?

1 Ответ

0 голосов
/ 23 марта 2020

код

($def =~ /^.*\; (\d+)$/)

говорит о том, что если переменная $def соответствует определенному регулярному выражению, оканчивающемуся хотя бы на одно число (обозначенное (\d+), которое может быть 1 или 8479, et c.), чтобы сохранить его в $1, и присвоить это десятичное число ха sh %offsets, который сохранит абсолютный путь к этому файлу.

Эта конкретная строка $def не соответствует регулярному выражению, поскольку в ней нет ;.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...