List::UtilsBy
- Not a core module, but on CPAN
use List::UtilsBy qw( sort_by nsort_by rev_sort_by rev_nsort_by max_by min_by uniq_by partition_by count_by zip_by unzip_by extract_by extract_first_by weighted_shuffle_by bundle_by ); my @by_dob = sort_by { $_->dob } @people; my @by_dob = sort { $a->dob cmp $b->dob } @people;