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

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; }