[Perl] Le + petit 'disponible' d'une liste

Résolu
KuKrApOk59 Messages postés 444 Statut Membre -  
KuKrApOk59 Messages postés 444 Statut Membre -
Bonjour,

J'ai actuellement un petit souci
Je m'explique :

J'ai une @liste qui contient :
1 2 3 4 6 8 11 15

J'aurais voulu savoir comment je pouvais m'y prendre pour trouver que '5' est le premier chiffre qui manque à la liste

Si vous aviez une idée pour m'éclaircir sur le sujet ...
A voir également:

2 réponses

KuKrApOk59 Messages postés 444 Statut Membre 84
 
Je suis en train de me creuser le citron a partir d'un script bash qui le fait
J'en fait un bout de perl fonctionnel, et je le posterai ici ...

On sait jamais, ca peut servir :p
0
KuKrApOk59 Messages postés 444 Statut Membre 84
 
Plop,

J'ai fini par utiliser un bout de perl présent dans le script adduser de ma distrib
Finalement, l'objectif est le même

Ce qui donne :
# Pour recuperer le premier nombre manquant d'une liste
#######################################################
sub first_avail_id {
    my ($min, $max, @ids) = @_;
    @ids = sort {$a <=> $b} @ids;
    while ($min <= $max) {
        return $min if ($min <  $ids[0] || @ids==0);
        shift @ids  if ($min >  $ids[0]);
        $min++      if ($min == $ids[0]);
    }

    -1;                         # nothing available
}


@ids est la liste que l'on veut parser
$min, le plus petit élément de @ids
$max, le plus grand élément de @ids
0