#!/usr/local/bin/perl -wl use Time::Local; use POSIX 'strftime'; sub get_yesterday { my $date = shift; my ($year, $month, $day) = split/-/,$date; my $time = timegm(0, 0, 12, $day, $month-1, $year); return strftime "%y-%m-%d", gmtime($time - 24*60*60); } print get_yesterday("2005-04-01");