List::UtilsBy 

use List::UtilsBy qw( min_by max_by );

my $tallest = max_by { $_->height } @people;

my $oldest  = min_by { $_->dob } @people;
# ^^ doesn't work because min_by/max_by always numeric