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; }
In reply to Re^3: Iteration in perl
by zwon
in thread Iteration in perl
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |