Bonjour à tous, Je sais que je suis hors sujet mais j'ai un petit problème avec un script perl. Ce script est chargé de vérifier si j'ai des messages de mes amis. tout fonctionne bien, sauf que, à la première vérification, le script m'affiche une fois que j'ai un message (quand j'en ai un). A la deuxième vérification, le script me dit *deux* fois que j'ai un message (et je n'ai qu'un message !). A la troisième vérif : *trois* fois la même chose, etc.
Il y a donc quelque chose de mal écrit, mais je n'arrive pas à trouver quoi... Si quelqu'un peut m'aider à y voir plus clair, ce serait super ! Cordialement, PS1 : ci-dessou, le script (un peu long pour un message, je sais, mais je ne l'enverrai qu'une fois, c'est promis !) PS2 : le fichier amis.dat contient la liste de mes amis, un par ligne de la forme : Prénom Nom: [EMAIL PROTECTED] #!/usr/bin/perl -w # -*-coding: utf-8 -* use strict; use warnings; use Mail::POP3Client; #--------------------------------------------------------------------------- # Variables globales #--------------------------------------------------------------------------- my $xdlg = "/usr/bin/zenity"; my $pop; my $i; my $nom; my @amis; my $amis_data; my $email; #chomp(my $user = `whoami`); my $user = "nicolas"; chomp(my $home_dir = "/home/$user"); my $passwd = "XXXXXXX"; my $popuser = "popuser"; my $pophost = "pop.mail.fr"; #~ sub popconfig { #~ open POPCONFIG, "$home_dir/.verifmaim.conf" #~ } sub connection { print "Connection au serveur...\n"; $pop = new Mail::POP3Client( USER => $popuser, PASSWORD => $passwd, HOST => $pophost ); } # ---------- end of subroutine connection ---------- sub read_data { open DATAFILE, "$home_dir/amis.dat" or die "Fichier introuvable !"; while (<DATAFILE>) { chomp; push @amis, $_."\n"; } for ($i = 1; $i <= $pop->Count(); $i++) { foreach my $amis (@amis) { my @amis_data = split / *: */, $amis; $email = $amis_data[1]; chomp($email); $nom = $amis_data[0]; &compare; } } close DATAFILE; return ; } # ---------- end of subroutine read_data ---------- sub compare { foreach ( $pop->Head( $i ) ) { if (/From:.*$email/) { chomp; print "Un message de $nom [$email]\n"; my $adresse = $_; system"$xdlg --info --text 'Un message de $nom'"; } } return ; } # ---------- end of subroutine compare ---------- #--------------------------------------------------------------------------- # Programme principal #--------------------------------------------------------------------------- #~ system "stty -echo"; #~ print "entrez un mot de passe de connexion : "; #~ chomp($passwd = <STDIN> ); #~ print "\n"; #~ system "stty echo"; while (1) { connection; read_data; print "Deconection du serveur...\n"; $pop->Close(); print "Ok, sleep 180.\n\n"; sleep 180; } -- Nicolas Roudninski [EMAIL PROTECTED] ---------------------- Toute ressemblance avec des fautes d'orthographe, de grammaire ou de conjugaison existantes ou ayant existé serait entièrement fortuite et indépendante de la volonté de l'auteur.