Salut tout le monde !!
J'essaye de faire un programme qui lit un fichier et le stocke dans une matrice. Ensuite je veux comparer chaque case de la colonne 2 avec toutes les autres cases de la colonne 2. Le problème c'est que j'ai plein d'erreurs de variables non initialisées (en fait la même erreur est répétée plusieurs fois). J'ai essayé de toutes les initialisées mais ça ne marche toujours pas ...
Voici le programme :
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
 
#! /usr/bin/perl -w
print "Entrez un nom de fichier\n";
$nom_fichier = <STDIN>;
chomp $nom_fichier;
@ARGV = ($nom_fichier);
 
unless (open (FICHIER,$nom_fichier))
{
	print "le fichier $nom_fichier ne peut pas être ouvert\n";
	exit;
}
 
while ($fichier=<>) 
{
	@fichier_tmp = split (/\t/,$fichier);
    push @fichier, [ @fichier_tmp ];
}
 
# nombre de lignes
$ligne = scalar(@fichier);
# estimation du nombre de colonnes basée uniquement sur la 1° ligne
$colonne = scalar(@{ $fichier[0]} );
 
print "$ligne\n";
print "$colonne\n";
$nb_cdt = 0;
$somme_CT = 0;
$i = 0;
$j = 0;
 
#La ligne 0 étant un en-tête je n'en tient pas compte
for ($i=1;$i<=$ligne;$i++)
{
	#Je stocke le contenu de différentes cases et j'incrémente le nbre de cdtion
	$cdt_1 = $fichier[$i][2];
	$somme_CT = $fichier[$i][6];
	$nb_cdt = $nb_cdt + 1;
 
	#cette 2ième boucle sert à comparer la ligne précédente avec toutes les lignes qui suivent
	for ($j=$i+1;$j<=$ligne;$j++)
	{
		$cdt_2 = $fichier[$j][2];
 
		if ($cdt_2 eq $cdt_1)
		{
			$nb_cdt = $nb_cdt + 1;
                        #L'erreur se trouve ici
			$somme_CT = $somme_CT + $fichier[$j][6];
		}
	}	
}
 
close FICHIER;
exit;
L'erreur que j'obtiens c'est :

Use of uninitialized value in addition (+) at C:\Documents and Settings\Panel\Bureau\tp_perl\fonctions.pl line 47, <> line 25.

J'ai aussi une erreur avec la ligne où j'utilise "eq" :

Use of uninitialized value in string eq at C:\Documents and Settings\Panel\Bureau\tp_perl\fonctions.pl line 44, <> line 25.

Si vous pouviez m'aider la-dessus aussi ça m'arrangerait !!
Merci d'avance.