my $sql = "SELECT bug_id, owner, subject, status, assigned FROM BUGS ORDER BY $field"; #### my $bugTable = $dbh->selectall_hashref("SELECT bug_id, owner, subject, status, assigned FROM BUGS"); my %numSorts = ( 1=>'bug_id' ); my %strSorts = ( 2=>'owner', 3=>'subject', 4=>'status', 5=>'assigned' ); my $input = ; chomp $input; my @srtArr = keys %$bugTable; if( exists $strSorts{$input} ){ my $k = $strSorts{$input}; @srtArr = sort { $bugTable->{$a}->{$k} cmp $bugTable->{$b}->{$k} } @srtArr; }elsif( exists $numSorts{$input} ){ my $k = $numSorts{$input}; @srtArr = sort { $bugTable->{$a}->{$k} <=> $bugTable->{$b}->{$k} } @srtArr; } print " @{$bugTable->{$_}} \n" for @strArr;