Risposta breve: No, Perl non ha un problema per quanto riguarda l'anno 2000.
Si, Perl è conforme a Y2K (qualsiasi cosa ciò significhi).
I programmatori che avete assunto per usarlo, tuttavia, probabilmente non
lo sono.
Risposta lunga: La domanda impedisce una reale comprensione della questione.
Perl è conforme a Y2K esattamente come la vostra matita--non di
più, e non di meno. Potete usare la vostra matita per scrivere una
nota non conforme a Y2K? Certo che potete. È colpa della matita?
Ovviamente no.
Le funzioni per la data e l'ora fornite con il Perl (gmtime e localtime)
forniscono un'informazione adeguata per determinare l'anno ben oltre il 2000
(per le macchine a 32 bit i problemi arriveranno nel 2038).
L'anno restituito da queste funzioni quando sono usate in contesto di lista
è l'anno meno 1900. Per gli anni tra il 1910 ed il 1999 capita
che esso sia un numero decimale di due cifre. Per evitare il problema
dell'anno 2000 evitate semplicemente di trattare quel numero come un
numero a due cifre. Non lo è.
Quando gmtime() e localtime() sono usate in contesto scalare, esse restituiscono
una stringa "timestamp" contenente il numero completo dell'anno. Per esempio,
$timestamp = gmtime(1005613200) imposta $timestamp a
"Tue Nov 13 01:00:00 2001". Non c'è alcun problema con
l'anno 2000 in questo caso.
Ciò non significa che il Perl non può essere usato per creare
programmi non conformi a Y2K. Può. Ma così può anche
la vostra matita. È colpa dell'utente, non del linguaggio. Rischiando
di offendere l'NRA: "Perl non viola Y2K, la gente lo fa". Consultate
http://www.perl.org/about/y2k.html per un'esposizione più lunga.
|