Salut tout le monde, j'ai écrit une fonction qui devrait me permettre de convertir une date format JJ-MM-AAAA en nombre de secondes depuis 1/1/1970, la voici :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
sub getUnixDate {
	my ($date) = @_;
	my (@date) = split(m:-:,$date);
	my ($jour, $mois, $annee) = @date;
	my @jours_valides = (31,28,31,30,31,30,31,31,30,31,30,31);
	my $nbSec;
	my $anneeBissextile;
 
	my $nbJour = $jours_valides[$mois] - $jour;
	my $nbMois = $mois - 1;
	my $nbAnnee = $annee - 1970;
 
	$nbSec = $nbJour * 24 * 60 * 60;
 
	for(my $i = 1;$i <= $nbMois;$i++) {
		nbSec = nbSec + ($jours_valides[$i] * 24 * 60 * 60);
	}
 
	for(my $annee = 1970;$annee <= $nbAnnee;$annee++) {
 
		if($annee % 400 == 0) { $anneeBissextile = 1; }
		elsif($annee % 100 == 0) { $anneeBissextile = 0; }
		elsif($annee % 4 == 0) { $anneeBissextile = 1; }
		else { $anneeBissextile = 0; }
 
		if ($anneeBissextile) { $jours_valides[1] = 29; }
		else { $jours_valides[1] = 28; }
 
		for(my $i = 1;$i <= 12;$i++) {
			nbSec = nbSec + ($jours_valides[$i] * 24 * 60 * 60);
		}
	}
 
	return $nbSec;
}
malheureusement, à l'exécution, j'ai l'erreur suivante :

Can't modify constant item in scalar assignment at /var/www/intranet/Intrascript/SYSGISI//Fusagx_lib_sysgisi.pm line 87, near ");"
la ligne 87 est la ligne contenue dans la première boucle :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
for(my $i = 1;$i <= $nbMois;$i++) {
		nbSec = nbSec + ($jours_valides[$i] * 24 * 60 * 60);
	}
est-ce que vous voyez d'où pourrait venir le problème ?

un grand merci