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)