Bonjour,

J'ai un problème de syntaxe avec ma fonction !

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
sub boucle(){	
	while ( my $ligne = <FICHIER>) {
		$cpt++;
		if (( $ligne =~ m/^^@@\s*(.+)/ ) || 
			( $ligne =~ m/^^@\s*(.+)/ ) ||
			( $ligne =~ m/^^sta\s*(.+)/ )){
				my ($NomFichier, $niv) = @_; # paramètres de la fonction boucle()
				$tab_nb++;
				$NomFichier =  $1;
				$tab[$tab_nb][0]=$NomFichier;
				$tab[$tab_nb][1]=$niv;
			boucle();
			open FICHIER, '<', $NomFichier or die("$NomFichier non existant : $!\n");
		}		
	}	
}
boucle();
J'ai cette erreur :

main::boucle() called too early to check prototype at verif.pl line 44.
Use of uninitialized value in print at verif.pl line 57, <FICHIER> line 728.
Use of uninitialized value in print at verif.pl line 57, <FICHIER> line 728.
Use of uninitialized value in print at verif.pl line 57, <FICHIER> line 728.
Use of uninitialized value in print at verif.pl line 57, <FICHIER> line 728.
Use of uninitialized value in print at verif.pl line 57, <FICHIER> line 728.
Use of uninitialized value in print at verif.pl line 57, <FICHIER> line 728.
Use of uninitialized value in print at verif.pl line 57, <FICHIER> line 728.
Use of uninitialized value in print at verif.pl line 57, <FICHIER> line 728.
Use of uninitialized value in print at verif.pl line 57, <FICHIER> line 728.
Use of uninitialized value in print at verif.pl line 57, <FICHIER> line 728.
Use of uninitialized value in print at verif.pl line 57, <FICHIER> line 728.
Use of uninitialized value in print at verif.pl line 57, <FICHIER> line 728.
Use of uninitialized value in print at verif.pl line 57, <FICHIER> line 728.
Use of uninitialized value in print at verif.pl line 57, <FICHIER> line 728.
Use of uninitialized value in print at verif.pl line 57, <FICHIER> line 728.
Use of uninitialized value in print at verif.pl line 57, <FICHIER> line 728.

J'ai aussi essayé comme ça :

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
sub boucle(){	
	while ( my $ligne = <FICHIER>) {
		$cpt++;
		if (( $ligne =~ m/^^@@\s*(.+)/ ) || 
			( $ligne =~ m/^^@\s*(.+)/ ) ||
			( $ligne =~ m/^^sta\s*(.+)/ )){
				$tab_nb++;
				$tab[$tab_nb][0]=$_[0];
				$tab[$tab_nb][1]=$_[1];
			boucle($1,$_[1]+1);
			open FICHIER, '<', $_[0] or die("$_[0] non existant : $!\n");
		}		
	}	
}
boucle("Init.sql",0);
J'ai cette erreur :

main::boucle() called too early to check prototype at verif.pl line 44.
Too many arguments for main::boucle at verif.pl line 50, near "0)"
Execution of verif.pl aborted due to compilation errors.

Une idée ?????