use warnings; use strict; use Data::Dumper; my %Months = ( 'Jan' => '01', 'Feb' => '02', 'Mar' => '03', 'Apr' => '04', 'May' => '05', 'Jun' => '06', 'Jul' => '07', 'Aug' => '08', 'Sep' => '09', 'Oct' => '10', 'Nov' => '11', 'Dec' => '12' ); my ($Date1,$Date2) = ('Jul 3 2016 10:45 UTC','Aug 12 2017 11:56 EST'); my @Variables = ($Date1,$Date2); for my $Date_Ref (@Variables) { my ($Month,$Day,$Year,$Time) = split ' ', $Date_Ref, 4; $Day = "0$Day" if length($Day) == 1; $Date_Ref = $Year."-".$Months{$Month}."-".$Day; } print Dumper \@Variables; __END__ $VAR1 = [ '2016-07-03', '2017-08-12' ];