use strict; use warnings; use Test::More tests => 1; use Time::Piece; my @aoh = ( { 'Name' => 'First Segment', 'Balance' => '183.57', 'days' => 0, 'First Date' => '12/02/2020', 'payment' => 0, 'Activity Date' => '07/05/2020', 'Total Commission' => 0, }, { 'Name' => 'Discontinue Segment', 'Balance' => '67.14', 'days' => 3, 'First Date' => '17/02/2020', 'payment' => 0, 'Activity Date' => '27/03/2020', 'Total Commission' => 0.12, }, { 'Name' => 'Last Segment', 'Balance' => '12.56', 'days' => 7, 'First Date' => '19/03/2020', 'payment' => 0, 'Activity Date' => '21/04/2020', 'Total Commission' => 0, } ); my $maxdate = localtime (0); for my $hr (@aoh) { my $date = Time::Piece->strptime ($hr->{'Activity Date'}, '%d/%m/%Y'); $maxdate = $date if $date > $maxdate; } is $maxdate->dmy ('/'), '07/05/2020';