From: Gurusamy Sarathy Date: Mon, 20 Sep 1999 18:28:44 +0000 (+0000) Subject: add README.Y2K (from Dominic Dunlop ) X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=d566c4d64388fa0dfe772b965e119f17669e4f51;p=p5sagit%2Fp5-mst-13.2.git add README.Y2K (from Dominic Dunlop ) p4raw-id: //depot/perl@4208 --- diff --git a/MANIFEST b/MANIFEST index bb92930..a570960 100644 --- a/MANIFEST +++ b/MANIFEST @@ -31,6 +31,7 @@ Porting/patching.pod How to report changes made to Perl Porting/patchls Flexible patch file listing utility Porting/pumpkin.pod Guidelines and hints for Perl maintainers README The Instructions +README.Y2K Notes about Year 2000 concerns README.amiga Notes about AmigaOS port README.apollo Notes about Apollo DomainOS port README.beos Notes about BeOS port diff --git a/README.Y2K b/README.Y2K new file mode 100644 index 0000000..378db15 --- /dev/null +++ b/README.Y2K @@ -0,0 +1,47 @@ +The following information about Perl and the year 2000 is a modified +version of the information that can be found in the Frequently Asked +Question (FAQ) documents. + +Does Perl have a year 2000 problem? Is Perl Y2K compliant? + +Short answer: No, Perl does not have a year 2000 problem. Yes, + Perl is Y2K compliant (whatever that means). The + programmers you've hired to use it, however, probably are + not. If you want perl to complain when your programmers + create programs with certain types of possible year 2000 + problems, a build option allows you to turn on warnings. + +Long answer: The question belies a true understanding of the + issue. Perl is just as Y2K compliant as your pencil + --no more, and no less. Can you use your pencil to write + a non-Y2K-compliant memo? Of course you can. Is that + the pencil's fault? Of course it isn't. + + The date and time functions supplied with perl (gmtime and + localtime) supply adequate information to determine the + year well beyond 2000 (2038 is when trouble strikes for + 32-bit machines). The year returned by these functions + when used in an array context is the year minus 1900. For + years between 1910 and 1999 this happens to be a 2-digit + decimal number. To avoid the year 2000 problem simply do + not treat the year as a 2-digit number. It isn't. + + When gmtime() and localtime() are used in scalar context + they return a timestamp string that contains a fully- + expanded year. For example, $timestamp = + gmtime(1005613200) sets $timestamp to "Tue Nov 13 01:00:00 + 2001". There's no year 2000 problem here. + + That doesn't mean that Perl can't be used to create non- + Y2K compliant programs. It can. But so can your pencil. + It's the fault of the user, not the language. At the risk + of inflaming the NRA: ``Perl doesn't break Y2K, people + do.'' See http://language.perl.com/news/y2k.html for a + longer exposition. + + If you want perl to warn you when it sees a program which + catenates a number with the string "19" -- a common + indication of a year 2000 problem -- build perl using the + Configure option "-Accflags=-DPERL_Y2KWARN". + (See the file INSTALL for more information about building + perl.)