1er script Perl taille d'un tableau - Perl - Programmation
Marsh Posté le 28-06-2007 à 16:54:02
oulalala ... y'a plein de trucs qui vont pas du tout
Marsh Posté le 05-07-2007 à 10:05:13
Et plutôt que de faire un read sur le fichier de conf, fait un inclure ou require (voir use, mais revoir le format)
Marsh Posté le 28-06-2007 à 16:29:54
Bonjour
J'ai reçu un script Perl, langage dans lequel je n'ai jamais programmé. après quelquues petites lectures, j'ai à peu près compris mais il y a nnéamoins quzlque chose qui cloche.
Je vais copier ici juste la partie concernant la création des données ,
script.pl
#!/usr/bin/perl -w
print("----------------------debut script---------------------\n" );
$out_dir = "";
@dirs = ();
@instances = ();
@outprefix = ();
@prefix = ();
@tests = ();
$file = $ARGV[0];
open(CONF, "<$file" ) or die "Error: $file not found\n";
$buffer = "";
while($line = <CONF> ) {
$buffer .= $line;
}
close CONF;
eval $buffer;
print("buffer : \n $buffer\n" );
print("#test =$#$tests\n" );
print("#test[0]=$#{$tests[0]}\n" );
le fichier de configuration attsurf.conf est le suivant :
$out_dir = "/home/huynh/plot_eaf/out/";
@dirs =("/home/huynh/plot_eaf/input1/",
"/home/huynh/plot_eaf/input2/" );
@instances = (
"eva_50x10_1"
);
@outprefix = ("1phero_scratch","1phero_TF" );
@prefix= ("*scratch*","scratch","*TF*","TF" );
@tests = (
["*scratch","1pheroS","*TF","1pheroTF"]
);
et voici ce que j'obtiens dans ma fenêtre de terminal ce que je ne comprends pas, c'est la valeur -1 que j'obtiens dans la ligne en gras, c'est à dire la valeur de $#$tests dans mon esprit cette valeur devrait être 1 :
huynh@huynh:~/plot_eaf$ perl script.pl attsurf.conf
Name "main::outprefix" used only once: possible typo at script.pl line 8.
Name "main::dirs" used only once: possible typo at script.pl line 6.
Name "main::out_dir" used only once: possible typo at script.pl line 5.
Name "main::instances" used only once: possible typo at script.pl line 7.
Name "main::prefix" used only once: possible typo at script.pl line 9.
----------------------debut script---------------------
buffer :
$out_dir = "/home/huynh/plot_eaf/out/";
@dirs =("/home/huynh/plot_eaf/input1/",
"/home/huynh/plot_eaf/input2/" );
@instances = (
"eva_50x10_1"
);
@outprefix = ("1phero_scratch","1phero_TF" );
@prefix= ("*scratch*","scratch","*TF*","TF" );
@tests = (
["*scratch","1pheroS","*TF","1pheroTF"]
);
#test =-1
#test[0]=3
Je vous remercie d'avance et m'excuse pour la question pê stupide d'un super débutant en Perl