Чтение разделов из файла в Perl

Я пытаюсь прочитать значения из входного файла в Perl. Входной файл выглядит так:

1-sampledata1 This is a sample test
              and data for this continues
2-sampledata2 This is sample test 2
              Data for this also is on second line

Я хочу прочитать вышеуказанные данные, чтобы данные для1-sampledata1 переходит в@array1 и данные для2-sampledata2 идет в@array2 и так далее. У меня будет около 50 таких разделов. лайк50-sampledata50.

EDIT: Имена не всегда будут X-sampledataX. Я просто сделал это, например. Так что имена не могут быть в цикле. Я думаю, что мне придется набирать их вручную

У меня пока есть следующее (что работает). Но я ищу более эффективный способ сделать это ..

foreach my $line(@body){
        if ($line=~ /^1-sampledata1\s/){
                $line=~ s/1-ENST0000//g;
                $line=~ s/\s+//g;
                push (@array1, $line);
          #using splitarray because i want to store data as one character each
          #for ex: i wana store 'This' as T H I S in different elements of array
                @splitarray1= split ('',$line);
        last if ($line=~ /2-sampledata2/);
        }
}
foreach my $line(@body){
        if ($line=~ /^2-sampledata2\s/){
                $line=~ s/2-ENSBTAP0//g;
                $line=~ s/\s+//g;
                @splitarray2= split ('',$line);
        last if ($line=~ /3-sampledata3/);
        }
}

Как видите, у меня есть разные массивы для каждого раздела и разные циклы for для каждого раздела. Если я пойду с подходом, который у меня есть, я получу 50 для циклов и 50 массивов.

Есть ли другой лучший способ сделать это? В конце я хочу получить 50 массивов, но не хочу писать 50 для циклов. И так как я буду потом перебирать 50 массивов в программе, возможно, сохраню их в массиве? Я новичок в Perl, так что это своего рода подавляющий ...

Ответы на вопрос(4)

Ваш ответ на вопрос