use Time::Local; my ($year, $month, $day) = qw(2002 02 21); my $gmtime = timegm(0,0,0,$day,$month-1,$year-1900); my @gmtime = gmtime($gmtime); # convert back print "day of week is $gmtime[6]\n"; # sunday = 0, saturday = 6 my ($day_of_week) = gmtime($gmtime) =~ /^(\S+)/; # fetch first word print "day of week is $day_of_week\n"; # "Sun" .. "Sat"