le handle de fichier est il parametrable?

le handle de fichier est il parametrable? - Perl - Programmation

Marsh Posté le 30-08-2006 à 15:04:48    

Salut  
 
je voudrais parametrer l´ouverture pour lecture de certains fichiers, et cela de cette maniere:  
 
#################  
 
open (FIC, "<repertoire/docufinal.html" ) || die "error: cannot read file";  
 
 
foreach my $value(@file){  
$cpt=$cpt+1;  
open (FILE$cpt, "<repertoire/docu$cptinitial.html" ) || die "error: cannot read file";  
 
@file$cpt=<FILE$cpt>;  
 
print FIC @file$cpt;  
 
}  
 
close(FIC);  
 
$cpt=0;  
foreach my $value(@file){  
$cpt=$cpt+1;  
close(FILE$cpt);  
}

 
##################  
 
le nombre de fichiers (docu1initial.html ,docu2initial.html ...) variant, j peux fixer le nombre ds le programme, foit tout d´ábord savoir combien sont present ds le repertoire courant et les mettre ds un tableau (@file), ensuite parcourir le tableau pr traiter 1 a 1 ($value(@file))  
 
Mais j´ai ces messages d´erreur a l´execution:  
 
1-Scalar found where operator expected at ./prog.pl line 1409 near    
@file$cpt  
 
(Missing operator before $cpt?)  
 
2-Missing comma after the first argument to open function at ./prog.pl line 1407, near " "<repertoire/docu$cptinitial.html" ) "  
 
je ne vois pas les pieges , quelqu´un pourrai aider?  
 
a bientot

Reply

Marsh Posté le 30-08-2006 à 15:04:48   

Reply

Marsh Posté le 31-08-2006 à 20:08:33    

Franchement, j'ai pas compris ton explication et pour que ton code marche il faudrait de longues heures d'explications. Alors j'ai pris ce que tu as fais et je l'ai corriger. Maintenant a toi de comprendre ce que ca fait et si c'est bien ce que tu veux que ca fasse.
 
J'ai laisser certaine etape pour que cela ressemble un peu a ton programme d'origine.
 

Code :
  1. #!/usr/bin/perl -w
  2. use strict;
  3. use diagnostics;
  4. open (FIC, ">repertoire/docufinal.html" ) || die "error: cannot read file :$!\n";
  5. my $files_numbers = [1..5];
  6. my $file_handles = [];
  7. my $file_data = [];
  8. for my $value (@$files_numbers) {
  9.   open ($file_handles->[$value], "<repertoire/docu${value}initial.html" )
  10.     or die "error: cannot read file:$!\n";
  11.   {
  12.     local $/ = undef;
  13.     my $fh = $file_handles->[$value];
  14.     $file_data->[$value] = <$fh>;
  15.   }
  16.   print FIC $file_data->[$value];
  17. }
  18. close(FIC);
  19. for my $value (@$files_numbers) {
  20.   close($file_handles->[$value]);
  21. }


 
 


---------------
Cdl, Danjer
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed