in reply to Re: Iteration in perl
in thread Iteration in perl

Hi, Thanks for your time .But, My Input file is something like this:
102186 102176
And I need to get the output like
1,WG0045068-DNA,A01,0,102186_A01_WTCCCT519791,... 2,WG0045068-DNA,B01,0,102186_B01_WTCCCT519793,... 3,WG0045068-DNA,C01,0,102186_C01_WTCCCT519805,... 1,WG0045066-DNA,A01,0,102176_A01_WTCCCT527545,... 2,WG0045066-DNA,B01,0,102176_B01_WTCCCT527498,...
At the moment I am getting the output as:
1,WG0045068-DNA,A01,0,102186_A01_WTCCCT519791,... 2,WG0045068-DNA,B01,0,102186_B01_WTCCCT519793,... 3,WG0045068-DNA,C01,0,102186_C01_WTCCCT519805,... 4,WG0045066-DNA,A01,0,102176_A01_WTCCCT527545,... 5,WG0045066-DNA,B01,0,102176_B01_WTCCCT527498,...
Does this help by any means??? Thanks!!!

Replies are listed 'Best First'.
Re^3: Iteration in perl
by zwon (Abbot) on Apr 03, 2009 at 18:58 UTC

    You should just check in the beginning of every iteration if platename is changed, and if it is, just reset numeration. Perhaps the following snippet would help you. Note that I not tested it

    my $oldname; # here we will store previous name foreach my $sam (@order) { # here is the current name my $platename = $save{$sam}{platename} || $save{$sam}{plateid}; # if name is changed, reset n to 1 $n = 1 unless $patename eq $oldname; if ( $save{$sam}{clone} =~ /BLANK|Water/i ) { print OUT "$n,$save{$sam}{platename},$save{$sam}{well},,$save{$sam}{plateid}$sav +e{$sam}{well}_BLANK,,,BLANK,,,,,,,,,,\n"; $n++; } print OUT "$n,$platename,$save{$sam}{well},$save{$sam}{case},$save{$sam}{plateid +}_$save{$sam}{well}_$save{$sam}{clone},Homo sapiens,$save{$sam}{gende +r},,$save{$sam}{vol},50,$save{$sam}{extmethod},,0,$save{$sam}{father} +,$save{$sam}{mother},,$save{$sam}{source}\n"; $n++; # store platename $oldname = $platename; }