It looks like you want to create a series of timestamps, one for each day in the @day_of_Month array. After fixing the initialization as indicated by
Bloodnok, you just need to loop through the days:
use strict;
use warnings;
use Time::Local;
my @day_Of_Month = ( 5, 16, 20 );
#i want to use this array one by one to do unix time stamp
use Time::Piece;
my $t = localtime($^T);
printf "entire time: %s\n", $t;
printf "Month: %s\n", $t->month;
printf "Year: %s\n", $t->year;
for my $dayOfMonth (@day_Of_Month) {
my $updatetime = timegm(59,59,23,$dayOfMonth, $t->_mon, $t->year);
printf "time for %2d %d (%s)\n", $dayOfMonth, $updatetime,
scalar gmtime($updatetime);
}
#time for 5 1391644799 (Wed Feb 5 23:59:59 2014)
#time for 16 1392595199 (Sun Feb 16 23:59:59 2014)
#time for 20 1392940799 (Thu Feb 20 23:59:59 2014)