|
|
|
|
[PERL]pb avec la fonction grep
Dernière réponse le 19 nov 2006 à 21:12:44 Johann, le 18 nov 2006 à 21:03:14Bonsoir tout le monde !!
Voilà, le code ci-dessous me parait fortement cohérent, et pourtant d'après les résultats obtenus je m'aperçois qu'il n'en est guère le cas :
while($line = <IN>){
chomp($line);
for ($k=0;$k<length($line);$k++){
if (!grep(lc(substr($line,$k,1)), @tablo)){
push(@tablo, lc(substr($line,$k,1)));
}
}
}
Ce code lit ligne par ligne un fichier, puis pour chaque caractère de la ligne insère dans un tableau si il n'y est pas présent, du moins c'est ce qu'il devrait faire, mais quand j'affiche le tableau finale il n'y a que le premier caractère...
Y'a t'il à debugger dans l'ame par ici ?
Merci d'avance et très bon week end !!
Salut,
|
Salut Lami20j et merci pour ta réponse !!
Quantifier follows nothing in regex; marked by <-- HERE in m/? <-- HERE / at ./1 line 13, <F_LIRE> line 2. J'ai un peu tester encore cette aprem de foutre dans ce foutu tableau les lettres uniques contenus dans le fichier mais en vain... |
Voilà le lien de mon fichier
|
J'ai besoin du fichier toto (sur cjoint.com ), pas le script qu'il fallait le copier ici sur ccm.
|
Re,
$k = 0;
foreach(@tablo){
print $tablo[$k];
$k++;
}je peux te dire que tu n'as pas compris la boucle foreach
foreach(@tablo){
print "$_\n";
}ouforeach my $element ( @tablo ){
print "$element\n";
}ou même $"="\n"; print "@tablo";font la même chose (affichage des éléments du tableau, un element par ligne Pour chaque élément du tableau, affiche l'élément lami20j |
Re,
|
Re
|
Mon script dois dire combien le fichier toto compte de 'a', de 'b', de 'c' ... .
#!/usr/bin/perl
use warnings;use strict;
my %nb_lettres;
open F_LIRE,"fichier.txt"
or die "E/S: $!\n";
while( my $l=<F_LIRE> ){
foreach (split //,$l){
$nb_lettres{$_}++ if /[a-z]/i;
}
}
foreach (sort keys %nb_lettres){
printf"Il y a %5s de %s\n",$nb_lettres{$_},$_;
}
__END__lami20j |

