#!/usr/bin/perl
use strict;
use warnings;
use List::AllUtils qw( max_by );
my $data = [
{
'Color' => 'green',
'Step' => 'Platform',
'acc' => '1111',
'Date' => '08-06-2022'
},
{
'Color' => 'black',
'Step' => 'Platform',
'acc' => '1111',
'Date' => '01-05-2019'
},
{
'Color' => 'blue',
'Step' => 'Platform',
'acc' => '1111',
'Date' => '10-11-2020'
},
{
'Color' => 'white',
'Step' => 'Platform',
'acc' => '1111',
'Date' => '01-03-2022'
},
{
'Color' => 'red',
'Step' => 'Platform',
'acc' => '1111',
'Date' => '03-21-2021'
},
];
my $mostrecent = max_by
{ my @fields = split /-/, $_->{Date}; join '', @fields[2,0,1] } @$d
+ata;
use Data::Dump 'dd'; dd $mostrecent;
Outputs:
{ acc => 1111, Color => "green", Date => "08-06-2022", Step => "Platfo
+rm" }