use strict; use warnings; use Data::Dumper; my @courselist = ( ["UM", "CS 34", ], ["AC", "PHIL 13", ], ["UM", 'BIO 567', ], ["UA", 'BIO 999', ], ["UM", 'BIO 1', ], ); @courselist = sort {$$a[0] cmp $$b[0] or $$a[1] cmp $$b[1]} @courselist; print Dumper(\@courselist);