my %INPUT = ( quizes => 2, assign => 2, recit => 2, ndays => 1, AT32000011 => 1, QZ132000011 => 1, RI132000011 => 1, AS132000011 => 1, QZ232000011 => 2, RI232000011 => 2, AS232000011 => 2, AT32000012 => 1, QZ132000012 => 12, RI132000012 => 12, AS132000012 => 12, QZ232000012 => 22, RI232000012 => 22, AS232000012 => 22, ); #### foreach (32000011..32000012) { push @{$STUDQT{$_}}, qw(fname mname lname Sex); } #### use Data::Dumper; print Dumper \%STUDQT; #yields: $VAR1 = { '32000011' => [ 'fname', 'mname', 'lname', 'Sex' ], '32000012' => [ 'fname', 'mname', 'lname', 'Sex' ] };