前日・翌日の取得


 実行日の前日・翌日を取得するのであればtimelocaltimeを使えば簡単です。
sub show_date {
	my $tm = shift;
	my ($day, $month, $year) = (localtime($tm))[3..5];
	printf "%04d/%02d/%02d\n", $year + 1900, $month + 1, $day;
}

# 前日を表示
show_date(time - 24 * 3600);
# 翌日を表示
show_date(time + 24 * 3600);
 また特定の日の前日・翌日を取得するには、Time::Localモジュールと上記の方法を組み合わせて使います。
use Time::Local;

sub show_date {
	my $tm = shift;
	my ($day, $month, $year) = (localtime($tm))[3..5];
	printf "%04d/%02d/%02d\n", $year + 1900, $month + 1, $day;
}

sub get_tm {
	my $year = shift;
	my $month = shift;
	my $day = shift;
	return timelocal(0, 0, 0, $day, $month - 1, $year - 1900);
}

my $tm = get_tm(2002, 7, 7);
# 前日を表示
show_date($tm - 24 * 3600);
# 翌日を表示
show_date($tm + 24 * 3600);
 Date::Simpleを使うともっと簡単です。
# 当日の前日・翌日を表示
use Date::Simple;

my $today = Date::Simple->new();

my $yesterday = $today->prev;
my $tomorrow = $today->next;

print $yesterday->format("%Y/%m/%d"), "\n";
print $tomorrow->format("%Y/%m/%d"), "\n";
# 特定日の前日・翌日を表示
use Date::Simple;

my $day = Date::Simple->new(2006, 1, 1);

my $yesterday = $day->prev;
my $tomorrow = $day->next;

print $yesterday->format("%Y/%m/%d"), "\n";
print $tomorrow->format("%Y/%m/%d"), "\n";

関連項目

localtime関数
time関数
現在の日時を求める