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}$save{$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}{gender},,$save{$sam}{vol},50,$save{$sam}{extmethod},,0,$save{$sam}{father},$save{$sam}{mother},,$save{$sam}{source}\n"; $n++; # store platename $oldname = $platename; }