I have to admit, I clicked on this node because I wanted to see a reference to "The Matrix", e.g. "There is no spoon." But now that I've looked at your code, I thought I'd give some feedback:
- use strict. Really. A lot of problems will become apparent if you do.
- In populate, you use $element without declaring it (you declare $elements.)
- In populate, you use $matrix without declaring it. So $matrix[$element] will always return 0.
- Within the main code, you continuously use $row and $col without ever changing them. So you are always indexing at 0, 0. (I assume $length1 and $length2 were initialized elsewhere, otherwise they too are always equal to 0).
- Even if $row and $col changed, setting $matrix_ref->[row][$col] to \@test is setting all elements to be a reference to the same array (@test). I'm pretty sure that's not what you want.
Items 2, 3, and 4 would have been immediately obvious had you used strict.
-Ton
-----
Be bloody, bold, and resolute; laugh to scorn
The power of man...