Tek yapmam gereken şey, gün veya ayın tek haneli olması, 'un önüne sıfır eklemektir. Şu anda bu 201188 olarak tarihini basar ve ben 20110808.Tarih :: Calc - günü ve ayı biçimlendirin
#!/usr/bin/perl
use Date::Calc qw(Add_Delta_Days);
my (undef, undef, undef, $day, $month, $year) = localtime();
$year +=1900;
$month +=1;
($year, $month, $day) = Add_Delta_Days($year, $month, $day, -3)
if ($month =~ /\d{1}/){
s/$month/0$month/
}
if ($day =~/\d{1}/){
s/$day/0$day/
}
print $year,$month,$day;
Sizin eğer-tablolar anlamı yok:
Aslında sen o azaltabilir. Öncelikle, her zaman bir rakam (1 veya 2) içerecektir, bu nedenle if ifadeleri her zaman doğru olacaktır. İkincisi, '$ _' değişkeninde, $ month' ve '$ day' yerine bir ikame gerçekleştiriyorsunuz. – TLP
@TLP, şu anda sahip olduğu kodu yayınladı (çalışmadığınız nedenlerden dolayı). Bu onun sorusu. Yorumunuz bunun yerine bir cevap olmalıdır. – cjm
aslında bence @TLP anlamanız gereken bir şey işaret etti. if ifadesi ve $ _ default değişkeni hakkında. – capser