use Time::Local; my $string = "01-01-2015"; my ($m, $d, $y) = split /-/, $string; my $epoch = timelocal 0, 0, 0, $d, $m-1, $y-1900; my $wday = (localtime $epoch)[6];