Todo lo que estoy tratando de hacer aquí es si el día o por mes es de un solo dígito, añadir un cero en la parte delantera de la misma. En este momento se imprime la fecha como 201188, y yo estoy buscando 20110808.Fecha :: Calc - formatear el día y el mes
#!/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;
Su sentencias if no tienen sentido. En primer lugar, siempre contendrán un dígito (1 o 2), por lo que las declaraciones if siempre serán verdaderas. En segundo lugar, está realizando una sustitución en la variable '$ _', no' $ month' y '$ day'. – TLP
@TLP, publicó el código que tiene ahora, que no funciona (por las razones que mencionas). Esa es su pregunta. Tu comentario debería ser una respuesta en su lugar. – cjm
en realidad, creo que @TLP señaló algo que necesitaba entender. sobre la instrucción if y la variable $ _ default. – capser