in reply to Assist in understanding old code

osunderdog has already explained what the code does. The reason you are getting the warning is that the code starts to fill the array at index 1:
for(my $bn=1;$bn<=$row[0];$bn++)
but starts to retrieve and sort at index 0
@indexUlt=sort{$nxxult[$a]<=>$nxxult[$b]} 0 ... $#nxxult;
Thus, you have an undef value in your comparison at nxxult[0] and you get a warning. Either change the loop to start filling the array at $nxxult[0] or count from 1 ... $#nxxult.