in reply to sub not executed

It looks to me like FillListe will be called each time in the loop. You can confirm it by doing a Devel::TraceCalls like this:
perl -d:TraceCalls=Subs,FillListe script.pl
What seems more likely is that the contents of $ligcnt or $dbgfill are getting corrupted. It is dangerous to use the contents of @_ directly, because any change you make to them will directly change the parameter variables. You might use something like this instead:
sub FillListe { my ($numclient, $ref, @params) = @_; $dbgfill++; ... }
Another thing that could happen is that you might have let the original $dbgfill go out of scope and have created another one. FillListe will hold on to the reference to the original $dbgfill, no matter what (it acts like a closure on any scoped variables it uses).