in reply to Date function

A solution for this simple task could be
#!/usr/bin/perl use strict; use warnings; use POSIX 'strftime'; my @date = (localtime)[0 .. 5]; $date[3]--; print strftime "%Y-%m-%d", @date;
This will give you the previous day (and roll back the month if today is the 1st).

Replies are listed 'Best First'.
Re^2: Date function
by Anonymous Monk on Aug 02, 2013 at 17:33 UTC
    This is what I need... How can I define and print the day, month and year from this code? Does  $date[3] mean that its picking up the 4 element in the "list?" Thank you for this piece of code!
      Yes, $date[3] is the day, (the 4th element in the array), and I'm subtracting 1 from it. @date has (secs mins hour day month year) from localtime. I'm taking a slice of the list returned by localtime, elements 0 to 5.
      How can I define and print the day, month and year from this code?
      See POSIX and find there 'strftime'. The date format uses the specifiers found here. (i.e, %Y-%m-%d)

      That is what my print statement does.

      Update: After thinking it over, I would not recommend using my suggestion and use one of the Date modules like toolic or CountZero suggested. For an example why mine could be in error, suppose you were 1 day past the daylight savings time beginning. You might go back a day to a nonexistent hour, (when Daylight savings went into effect) by simply subtracting a day and not accounting for the hour.

      Date/times are tricky.

        Thank you very much!