in reply to Two sort in single Array set

While choroba's solution is very clever and efficient, it might be daunting to someone who's new to Perl. You might feel more comfortable with something that works in smaller steps, like this:
my @crit = grep {$_->{severity} eq 'critical'} @records; my @noncrit = grep {$_->{severity} ne 'critical'} @records; @crit = sort {$b->{event_age} <=> $a->{event_age}} @crit; @noncrit = sort {$a->{event_age} <=> $b->{event_age}} @noncrit; @records = (@crit, @noncrit);