#!/usr/bin/perl use strict; use warnings; use Data::Dumper; my %clone_hash; while () { chomp; my @fields = split /\t/; my ($gene_symbol, $esc_qc) = ($fields[0], $fields[1]); $clone_hash{$gene_symbol} = $esc_qc; my $grade = ($esc_qc =~ /^pass[1-3]$/) ? 'good' : 'bad'; $clone_hash{$key}{$grade}++; } print Dumper(\%clone_hash); _DATA_ 4933402D24Rik fail 4933402D24Rik fail 4933402D24Rik fail 4933402D24Rik fail 4933402D24Rik fail 4933402D24Rik fail 4933402D24Rik fail 4933402D24Rik pass1