Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1735 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  1er script Perl taille d'un tableau

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

1er script Perl taille d'un tableau

n°1580497
Tchucky
Posté le 28-06-2007 à 16:29:54  profilanswer
 


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

mood
Publicité
Posté le 28-06-2007 à 16:29:54  profilanswer
 

n°1580512
anapajari
s/travail/glanding on hfr/gs;
Posté le 28-06-2007 à 16:54:02  profilanswer
 

oulalala ... y'a plein de trucs qui vont pas du tout :o

  • "use strict;" obligatoire en debut de script quand on débute ( et même après), rien que cela t'aurait orienté pour trouver ton problème
  • on utilise "my" pour déclarer une variable
  • la différence entre @tab et $#tab: $#tab te retourne la position du dernier element d'un tableau ( par exemple 0 quand il y a un seul élément dans le tableau) tandis que @tab, utilisé dans un contextescalaire, te retourne la taille du tableau. Je te conseille la lecture de: http://perldoc.perl.org/perldata.html
  • les références en perl, hop: http://perldoc.perl.org/perlref.html
  • "Eval is evil", je te deconseille fortement de t'en servir, surtout si tu débutes.

n°1582715
dreameddea​th
Posté le 05-07-2007 à 10:05:13  profilanswer
 

Et plutôt que de faire un read sur le fichier de conf, fait un inclure ou require (voir use, mais revoir le format)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  1er script Perl taille d'un tableau

 

Sujets relatifs
[CSS] Faire une info-bulle avec internet explorer...Tableau 2 dim dans une structure
Image dans cellule d'un tableau = ?N00b perl, problème étrange
Demande aide tableau en csslancer un script d'un serveur extèrieur
Mysql : script avec tables en majuscules --> tables crées en minuscule[C - MPI] envoyer la partie intérieure d'un tableau
script saisie par DOSpassage de tableau entre fonctions
Plus de sujets relatifs à : 1er script Perl taille d'un tableau


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR