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