Just a nit: for my $i ( 0 .. $number_of_clusters-1 ) { ... }
Should be: for my $i ( 0 .. $#number_of_clusters ) { ... }
Update: Hrm, whups, I read that first line as "0..@number_of_clusters", apparently multiple times. It should not be "0 .. $#number_of_clusters" since @number_of_clusters doesn't exist. It might be more clearly written "1 .. $number_of_clusters" though, =]
I think that the first option is the correct one because I want the loop to run for $number_of_clusters times. Because the loop starts in 0, it should go up to $number_of_clusters-1.