NAME¶
Date::Manip::Migration5to6 - how to upgrade from 5.xx to 6.00
SYNOPSIS¶
When upgrading from Date::Manip 5.xx to 6.00, a few changes may be necessary to
your scripts.
The Date::Manip::Changes5to6 document lists in more detail the ways in which
Date::Manip changed, but very few of these actually entail changes to your
script.
It should be noted that once the changes are made to your script, it will no
longer run correctly in 5.xx.
NECESSARY AND SUGGESTED CHANGES¶
The following changes are necessary, or strongly suggested:
- Reading config files with Date_Init
- If you use Date_Init to read any config files (if you do
business mode calculations, you probably do), you should remove all of the
following config variables from your call to Date_Init:
GlobalCnf=FILE
PersonalCnf=FILE
PathSep=*
IgnoreGlobalCnf=*
PersonalCnfPath=*
and replace them with:
ConfigFile=FILE
where FILE is now the full path to a config file. Also, the ConfigFile
argument should be the first argument in Date_Init.
- Date_ConvTZ
- The Date_ConvTZ function has changed. It should now take 3
arguments:
$date = Date_ConvTZ($date,$from,$to);
If $from is not given, it defaults to the local time zone. If $to is not
given, it defaults to the local time zone.
The date is converted from the $from time zone into the $to time zone. Both
should be any time zone (or alias) supported by Date::Manip.
The old $errlevel argument is no longer handled.
- ConvTZ and TZ config variables
- If you use either the ConvTZ or TZ config variables, you
should replace them with either SetDate or ForceDate. See the
Date::Manip::Config document for information.
The TZ variable will continue to work until Dec 2013 at which point it will
be removed.
- Other deprecated config variables
- The following config variables have been deprecated, but
will continue to function (though they will be removed at a future date):
IntCharSet (removed Oct 2012)
TZ (removed Dec 2013)
The following variables have been removed. If you use any of them, you may
need to modify your scripts:
GlobalCnf
PersonalCnf
PathSep
IgnoreGlobalCnf
PersonalCnfPath
ConvTZ
Internal
TodayIsMidnight
DeltaSigns
UpdateCurrTZ
ResetWorkdDay
- today, yesterday, tomorrow
- If you parse the strings "today",
"yesterday", or "tomorrow" in order to get the time
now, or 24 hours in the past/future, this will no longer work. These
strings now refer strictly to the date (so "today" is the
current day at midnight, "yesterday" is the previous day at
midnight, etc.).
To get the time now, 24 hours ago, or 24 hours in the future, you would need
to parse the strings "now", "-24:00:00", or
"+24:00:00" respectively.
- Do not use Memoize
- In 5.xx, it was documented that you could use the module
Memoize to speed up Date::Manip, especially when sorting dates.
This information is no longer accurate. Using Memoize in conjunction with
Date::Manip should have little impact on performance, and may lead to
incorrect results, especially if you change config variables.
Please see the Date::Manip::Changes5to6 (GENERAL CHANGES) document for more
information.
If you find other instances where it is necessary to modify your script, please
email me so that I can add that information to this document.
BUGS AND QUESTIONS¶
Please refer to the Date::Manip::Problems documentation for information on
submitting bug reports or questions to the author.
SEE ALSO¶
Date::Manip - main module documentation
LICENSE¶
This script is free software; you can redistribute it and/or modify it under the
same terms as Perl itself.
AUTHOR¶
Sullivan Beck (sbeck@cpan.org)