On 04/04/2012 13:57, Anamika K wrote:
Hello All,
I have a file like this:


NM_009648,NM_001042541:1        0.955794504181601
NM_019584:1     0.900900900900901
NM_198862:1     0.835755813953488
NM_001039093,NM_001039092,NM_153080:1   0.805008944543828

and want output like this:

NM_009648  0.955794504181601
NM_001042541:1  0.955794504181601
NM_019584:1     0.900900900900901
NM_198862:1     0.835755813953488
NM_001039093  0.805008944543828
NM_001039092   0.805008944543828
NM_153080:1  0.805008944543828

I am using split function first to separate column 1 with column 2 and
then  based upon "comma" I need to split column 1. But as you can see,
in the column 1, there are sometimes more than two patterns separated
by comma, so I am unable to do it in a correct way.

Could you please suggest my how to proceed?

Hello Anamika

I suggest you use the default parameters for split to separate the
columns, then split the first column again on commas. The code below
incorporates your data after the __DATA__ tag. Clearly your program can
obtain the data from anywhere.

HTH,

Rob


use strict;
use warnings;

while (<DATA>) {
   my ($keys, $val) = split;
   printf "%15s - %s\n", $_, $val for split /,/, $keys;
}

__DATA__
NM_009648,NM_001042541:1        0.955794504181601
NM_019584:1     0.900900900900901
NM_198862:1     0.835755813953488
NM_001039093,NM_001039092,NM_153080:1   0.805008944543828

**OUTPUT**

      NM_009648 - 0.955794504181601
 NM_001042541:1 - 0.955794504181601
    NM_019584:1 - 0.900900900900901
    NM_198862:1 - 0.835755813953488
   NM_001039093 - 0.805008944543828
   NM_001039092 - 0.805008944543828
    NM_153080:1 - 0.805008944543828

--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to