Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Newbies Prob pour check tous les fichiers d'un dossier

2 réponses
Avatar
Orion93
Actuellement j'essay de faire un script pour compter toutes les lignes de
mes fichiers PL. Actuellement mon script fonctionne pour un fichier pl et
malgre des essais avec opendir je n'y arrive pas aussi si qq'un pouvait
m'aider!

Voici mon script actuel:

#!/usr/bin/perl
sub recupPages
{
my $nomFic = shift;
my $result = shift;

# Récupération des lignes du fichier
open(F,$nomFic);
open(SORTIE,">> $result");
$i = 0;
while(<F>)
{

$i ++;
}
print SORTIE " $nomFic $i\n";

close F;
close SORTIE;}

my $emplacement = "C:\\stat\\test.pl";
my $ficResultat = "C:\\result.txt";
recupPages($emplacement,$ficResultat);

Merci

2 réponses

Avatar
Terrot Francois
Bonsoir
1- une bonne habitude est de placé le switch -w apres perl dans la premiere
ligne des tes scripts
2- une autre bonne habitude est de mettre : use strict; des la deuxieme
ligne

Ces deux choses permettent de trouver bon nombre de problemes.

3 - A partir de ton script je ferais un truc du style ...

# Mettre ici le debut du script
#recupPages($emplacement,$ficResultat);

my $rep = "C:temp";

opendir(DIR, $rep) or die " $!"; #pour avoir le message d'erreur
rewinddir( DIR); # juste pour être sur ...
LS: while (defined($_ = readdir(DIR))) # lire le repertoire
{
next LS if (/^..?$/) ; # on passe les repertoires . et ..
next LS unless ( /.pl$/i ); # on passe si le nom du fichier ne finit
# par .pl (sans tenir compte des
# majuscules)
recupPages($rep.$_ , $ficResultat);
}
closedir DIR;


Francois

"There's more than one way to do it." (Larry Wall: créateur de Perl)

Actuellement j'essay de faire un script pour compter toutes les lignes
de mes fichiers PL. Actuellement mon script fonctionne pour un fichier
pl et malgre des essais avec opendir je n'y arrive pas aussi si qq'un
pouvait m'aider!

Voici mon script actuel:

...

recupPages($emplacement,$ficResultat);

Merci



Avatar
dominix
"Orion93" wrote in message
news:
Actuellement j'essay de faire un script pour compter toutes les lignes de
mes fichiers PL.


tu veux donc:

perl -lne
'$h{$ARGV}=$.;END{for(keys(%h)){print $_," ",$h{$_}}}'
stat/*.pl > result.txt


en clair

perl -MOÞparse -lne '$h{$ARGV}=$.;END{for(keys(%h)){print $_,"
",$h{$_}}}'


BEGIN { $/ = "n"; $ = "n"; }
LINE: while (defined($_ = <ARGV>)) {
chomp $_;
$h{$ARGV} = $.;
sub END {
foreach $_ (keys %h) {
print $_, ' ', $h{$_};
}
}
;
}


--
dominix