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/