Uwe Rieger: (ZUR INFO) angeblicher Y2K Bug in Perl ist keiner

Beitrag lesen

Jedenfalls bis zum Jahr 2027. Danach könnte das eine Byte, welches bei der Zerlegung des Datumswertes möglicherweise intern verwendet wird (als "signed char"), überlaufen.
(Falls "unsigned char", dann kracht es Anfang 2156. ;-)

Ach was interessiert mich das Jahr 2027 :-)
Naja momentan leben meine Scripte eh nur höchsten 2 Monate, dann gibts neue.

In C, Perl und anderen "Hackersprachen" ;-) ist es üblich, einen Array so zu definieren, wie intern auch der Code generiert wird, nämlich beginnend mit dem Element, das den Indexwert [0] aufweist. (erstes Element = Startadresse des Arrays plus offset von Elementbreite mal Null.)

Monatswerte von 0 bis 11 sind also geradezu ideal, einen "char [12]" in C zu adressieren, welcher Komponenten von [0] bis [11] (nicht [12]!) hat.
In Perl sind arrays dynamisch lang, aber man würde bei 1-12 immerhin das Element 0 verschenken ...

Ok die Erklärung ist gut. Das versteh sogar ich :-).
Wir wollen ja schließlich nix verschenken.