classer des e-mails en fonction du fournisseur [Perl] - Perl - Programmation
Marsh Posté le 27-07-2003 à 14:11:03
commence par faire un split sur le caractère @
à partir de là, soit tu te fais un tri manuel, soit tu cherches une fonction de sort
Marsh Posté le 27-07-2003 à 15:13:43
Introduction à Perl, chez O'reilly est un très bon bouquin pour commencer le perl.
CHaiCA
Marsh Posté le 27-07-2003 à 16:41:34
tu te fait une fonction de tri (non testé):
Code :
|
et ensuite tu l'utilise pour trier tes clés dans un foreach par exemple:
Code :
|
et evidement tu peux avoir la liste triée des fournisseur comme ca:
Code :
|
Marsh Posté le 28-07-2003 à 13:56:04
Merci Pospos, ça fonctionne vraiment trés bien !
Je ne comprend pas trop le sous-programme, notament l'usage du cmp..mais en tout cas, ça fonctionne d'enfer !
Merci et a+
Marsh Posté le 28-07-2003 à 14:04:15
c'est assez simple, il prend les noms de domaine ( la partie après le @ ) et ensuite les compare tous les deux.
Il reduit la casse des noms de domaine pour être sur de sa comparaison ( lc() ) puis il les compare avec cmp ( comparateur de string d'ailleurs j'ai jamais trop compris la différence entre cmp et eq ...). Vu que cmp retourne 1 ou 0 et que c'est ce qu'il faut pour le sort, et bien il retourne le resultat de la comparaison directement!
Marsh Posté le 28-07-2003 à 18:35:54
de rien Ethan
pour le eq et le cmp c'est la meme differnece qu'entre le == et le <=>:
il retourne -1,0 ou 1 suivant k'il est plus petit, egale, ou plus grand
en fait triFournisseur() est une fonction de tri, et les variables $a et $b sont des variables speciales. Pour chaque element du tableau la focntion de tri est appelé, et $a et $b representent deux element qui se suivent. la fonction de tri va donc retourner -1,0, ou 1 (suivant la logique qu'a decrit Anapajari)pour indiquer à la fonction sort dans kelle ordre elle doit placer ces elements.
en fait la fonction de tri par defaut est $a<=>$b (ou $a cmp $b pour les strings) mais on peu implementer sa propre fonction de tri comme dans ce cas la
a+
Marsh Posté le 29-07-2003 à 13:16:40
Ok, merci pour toutes ces explications.
Ce que je ne comprend pas (je rappelle que je suis débutant, et que le programmation n'est pas du tout mon domaine), c'est $a et $b, je ne comprend pas d'ou ils sortent...
Merci.
Marsh Posté le 29-07-2003 à 13:34:47
$a et $b c'est en qq sorte les parametres de ta fonction de tri, ce sont deux elements consecutifs dans le tableau (et la fonction est appelé pour chaque couple du tableau)
C'est des variables "speciales" pour les fonction de tri
Citation : sort SUBNAME LIST |
Marsh Posté le 27-07-2003 à 13:07:40
Bonjour,
j'ai un petit soucis de programmation, merci de votre aide...
soit un tableau associatif, %confirm dont les clés sont des adresses e-mail.
Je voudrais classer ces clés, en fonction du fournisseur, donc en fonction de la deuxième partie de l'e-mail (aprés le @)
J'aurais ainsi une liste ou je verrais d'abord tous les
@club-internet.fr
@free.fr
@wanadoo.fr
etc...
je dois admettre que je ne sais pas trop comment m'y prendre....merci d'avance.