nom1
nom2
nom3
,...
- Code: Tout sélectionner
#!/usr/bin/perl
# election Miss PERL
# on charge ( en un "coup") une liste de prenoms a partir d'un fichier
# ( fichier Prenoms dispo sur l'Intranet/Jeux d'essai)
# on parcourt CIRCULAIREMENT cette liste . A chaque réception du signal
# SIGINT ( CTRL C, signal n° 2), l'element courant ( de la "boucle") est supprimé.
# Quand il ne reste plus qu'un seul nom, on affiche l'heureuse (?) gagnante
#--------------------------------------------------------------------------
use strict; # pour controle strict de la syntaxe
print "Entrer le nom du fichier\n";
my $reponse = <>;
chomp($reponse); # question : KESAKO ??
die "saisir un fichier!" unless (-f $reponse);
open F, $reponse or die "impossible d'ouvrir le fichier $reponse";
my @girls =<F>; # on charge le contenu du fichier dans une liste
close F;
my $i=0;
sub fonc_assoc
{
if(@girls!=1)
{
splice @girls,$i,1;
print @girls;
}
else
{
print @girls;
}
}
sub affiche
{
print @girls;
}
sub increment
{
$i=$i+1;
print $i;
}
$SIG{"INT"}="fonc_assoc"; # gestion signal SIGINT : fonction associée
$SIG{"TERM"}="affiche";
# on affiche le pid du processus et le nombre de personnes
print "Je suis le pid : $$\n";
while(1)
{
if($i>=$#girls){
$i=0;
}
else
{
$i=$i+1;
}
}
