I am looking to get yesterday's date in perl and it is proving unbelievably problematic. I need it to get a log file by name which I then have to parse. The parsing is fine, the date however has me driven around the bend. Any help will be great. I just need the date not the time.
Sorry here is my code so far, I have the date but I need to format it as ddmmyy. (eg the file is named ex040404.log.) I just know this is something simple.
I don't know how efficient this is, but it does work.
Code:
my ( $sec, $min, $hour, $day, $month, $year ) = localtime( time - (60 * 60 * 24) );
$year += 1900;
$month += 1;
chomp( $day, $month, $year );
print "The date is: ", $day, $month, $year, ".";
The $year += 1900 part is because the value of $year is actually the number of years since 1900 (so we need to add 1900 to it to get the correct year). The $month += 1 part is because the range returned for the month is 0..11, with 0 being January and 11 December (so you have to add 1 to it to make it accurate). The chomp( $day, $month, $year ); part is because, for some reason, the values seem to have superfluous whitespace on either side.
Thousand different paths
So many sterile ends
I chose the Devil's path
Never shall the sun kiss my face
And caress me with it's burning light
For I dwell in the shadows
And sleep side by side with death
my @timeAry = localtime(time - (60*60*24));
my $filename = 'ex' . sprintf("\%02u",($today[3]))
. sprintf("\%02u",($today[4]+1))
. sprintf("\%02u",($today[5]-100)) . '.log';
@timeAry[3] contains 1..31, so format to 01..31
@timeAry[4] contains 0..11, so add 1 and format to 01..12
@timeAry[5] contains 104..10n, so subrtact 100 and format 04..0n
“The power of the Web is in its universality. Access by everyone regardless of disability is an essential aspect.”
—Tim Berners-Lee, W3C Director and inventor of the World Wide Web
Bookmarks