[Perl] strlen
Résolu
PeterPeterPeter
Messages postés
202
Date d'inscription
Statut
Membre
Dernière intervention
-
PeterPeterPeter Messages postés 202 Date d'inscription Statut Membre Dernière intervention -
PeterPeterPeter Messages postés 202 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je voulais me coder un petit strlen après avoir fais qqes débuts de tuto en perl mais apparament
je n'arrive pas à me déplacer dans une chaine de caractère !
En C :
J'ai essayé comme cela pour du perl :
Mais apparament ce n'est pas possible de se déplacer comme en C dans une chaine de caractère.
ps : oui je sais que la fonction length() existe en perl c'est juste pour mieux comprendre comment
cela se passe en perl.
Merci !
Je voulais me coder un petit strlen après avoir fais qqes débuts de tuto en perl mais apparament
je n'arrive pas à me déplacer dans une chaine de caractère !
En C :
int my_strlen(char *str) { int i; i = 0; while(str[i]) i++; return(i); }
J'ai essayé comme cela pour du perl :
sub mystrlen { my $str = @_[0]; my $i = 0; while ($str[$i]) $i++; return ($i); }
Mais apparament ce n'est pas possible de se déplacer comme en C dans une chaine de caractère.
ps : oui je sais que la fonction length() existe en perl c'est juste pour mieux comprendre comment
cela se passe en perl.
Merci !
A voir également:
- Strlen perl
- Denon perl pro test - Accueil - Audio
- Active perl - Télécharger - Édition & Programmation
- DzSoft Perl Editor - Télécharger - Édition & Programmation
- Comment executer un script Perl ? ✓ - Forum Perl
- Execution d'un fichier.txt avec perl - Forum Perl
12 réponses
Salut,
c'est un peu normal, puisque par rapport à C où une chaîne de caractères est un tableau de caractères (donc tu peux parcourir les éléments de tableau en incrémentant i par exemple), en Perl une chaîne de caractères c'est une donnée singulière appelé aussi scalar.
pour faire comme tu fait en C, tu dois d'abord éclater la chaîne dans un tableau et ensuite sur le tableau tu peux faire le même algorithme qu'en C
voici un exemple
c'est un peu normal, puisque par rapport à C où une chaîne de caractères est un tableau de caractères (donc tu peux parcourir les éléments de tableau en incrémentant i par exemple), en Perl une chaîne de caractères c'est une donnée singulière appelé aussi scalar.
pour faire comme tu fait en C, tu dois d'abord éclater la chaîne dans un tableau et ensuite sur le tableau tu peux faire le même algorithme qu'en C
voici un exemple
#!/usr/bin/perl # my $chaine="Mais apparament ce n'est pas possible de se déplacer comme en C dans une chaine de caractère."; #avec boucle comme on fait en C - v2 sub strlen_C { my $i; my @s = split '',$_[0];; while(@s){ ++$i; shift @s; } return $i; } my $i = strlen_C($chaine); printf "1. Longueur de \$chaine = $i\n"; # avec les expressions régulières sub strlen_RE { my @i = $_[0]=~/(.)/g; return scalar @i; } my $i = strlen_C($chaine); printf "2. Longueur de \$chaine = $i\n"; # pas vraiment besoin d'une fonction personnalisée print "3. Longueur de \$chaine = ", scalar(split '',$chaine),"\n"; __END__L'exécution
lami20j@debian:~/trash$ perl strlen.pl 1. Longueur de $chaine = 93 2. Longueur de $chaine = 93 3. Longueur de $chaine = 93
Merci beaucoup ça m'aide à un peu mieux comprendre la logique de ce langage magnifique qu'est le perl !
Sinon, vu que tu as l'air plutôt bon en perl, aurais-tu de bons sites à me conseiller ?Car personellement je n'ai pas trouvé un tutoriel qui me convient vraiment car ils sont soit trop vieux, soit trop axé web / regex.
Je met comme résolu tout de même vu que j'ai ma réponse principale !
Sinon, vu que tu as l'air plutôt bon en perl, aurais-tu de bons sites à me conseiller ?Car personellement je n'ai pas trouvé un tutoriel qui me convient vraiment car ils sont soit trop vieux, soit trop axé web / regex.
Je met comme résolu tout de même vu que j'ai ma réponse principale !
Re,
à part enstimac qui a la traduction en français de la documentation Perl, personnellement j'ai acheté ça :
Introduction à Perl
Programmation en Perl
Perl en action
De l'art de programmer en Perl
c'est cher, mais ça vaut le coup ;-)
à part enstimac qui a la traduction en français de la documentation Perl, personnellement j'ai acheté ça :
Introduction à Perl
Programmation en Perl
Perl en action
De l'art de programmer en Perl
c'est cher, mais ça vaut le coup ;-)
Que du O'Reilly, tu es friand de qualité on dirai !
Je vais surement me commander "introduction à Perl" !
Merci encore de ton aide.
Je vais surement me commander "introduction à Perl" !
Merci encore de ton aide.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re,
Si tu te débrouilles en anglais, tu trouves des livres (en lecture seule) ici https://docstore.mik.ua/orelly/perl/
Si tu te débrouilles en anglais, tu trouves des livres (en lecture seule) ici https://docstore.mik.ua/orelly/perl/
C'est exactement le genre de site que je cherchais, un site qui traite le perle de A à Z et surtout la partie networking, ça va être un régal, par contre je ne trouve pas de site de vente qui dispose de "Introduction à Perl", j'espère pouvoir le commander directement en librairie, j'irai voir pendant la semaine !
Merci merci !J'ai de quoi m'occuper pour un bon bout de temps là !
Merci merci !J'ai de quoi m'occuper pour un bon bout de temps là !
Je n'étais pas du tout au courant, c'est vraiment affligeant d'apprendre cela, enfin je me débrouillerai pour trouver un de ces bouquins.
Salut,
Introduction à Perl, est juste un survol sur le Langage (je le trouve très pratique ;-)
Programmation en Perl c'est carrément la Bible ;-)
Tiens aussi ce lien, avec le code source (non expliqué) de Perl en Action
Introduction à Perl, est juste un survol sur le Langage (je le trouve très pratique ;-)
Programmation en Perl c'est carrément la Bible ;-)
Tiens aussi ce lien, avec le code source (non expliqué) de Perl en Action
Enorme ... faut que t'arrêtes là, sinon je ne vais plus faire autre chose que du perl tant que je n'ai pas tout parcouru !
Re,
Pour ne pas oublier CPAN (Comprehensive Perl Archive Network) où tu trouveras plein des modules, scripts ainsi que le code source de Perl
Et j'arrête ;-))
Pour ne pas oublier CPAN (Comprehensive Perl Archive Network) où tu trouveras plein des modules, scripts ainsi que le code source de Perl
Et j'arrête ;-))