Как мне найти значение Mod для позиции и B позиции с Perl - PullRequest
0 голосов
/ 22 августа 2011

Теперь у меня были данные (текстовый файл).Как мне найти значение Mod для позиции a и позиции b.Например:

 my data:
  posi 
    13628   16195   GTG GAA BL4_0018
    14185   14185   T   C
    20000   16543   ATG GAC BL4_0019
Hope The result : 
  posi
  Mod value 16195   GTG GAA BL4_0018
  Mod value 14185   T   C
  Mod value 16543   ATG GAC BL4_0019
Mod value=(present-current)%3+1

Я надеюсь, что результат был напечатан со всеми столбцами. Буду признателен, если вы сможете дать несколько указателей.

1 Ответ

1 голос
/ 22 августа 2011

Как насчет:

#!/usr/bin/perl
use strict;
use warnings;
use Data::Dump qw(dump);

my ($current, $previous, $rest, $prest);
while(<DATA>) {
    chomp;
    if (/^\s*(\d+)(.*)$/) {
        $current = $1;
        $rest = $2;
    }
    if (defined $previous) {
        my $mod = ($current - $previous) % 3 + 1;
        print  "$mod $rest\n";
    }
    $previous = $current;
}

__DATA__
 posi 
    13628   16195   GTG GAA BL4_0018
    14185   14185   T   C
    20000   16543   ATG GAC BL4_0019

Вывод:

3    14185   T   C
2    16543   ATG GAC BL4_0019
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...