Nest - Nested Arrays
The message system for Karma caches header information in a nested tree, or multidementional array. Unfortunately this isn't easy to accomplish in perl, and requires much trickery.
Below is a sketch from the early development stages. please excuse the lack of detail.
sample tree:
post /
reply
reply/
reply/
reply
post
proposed array structure for the reply tree:
@threads = (
[ post, reply, [ reply, [ reply, reply ] ] ],
[ post ],
) ;
in this example each element of the array contains a reference to another array which, in turn, contains actual article numbers as well as references to more such arrays.
example 2 - accessing the data
$threads[0][0] == post
$threads[0][1] == reply
$threads[0][2][0] == reply
$threads[0][2][1][0] == reply
$threads[0][2][1][1] == reply
$threads[1][0] == post
when the tree is flattened it becomes a numbered list, like so.
$threads[0] == [1, post ]
$threads[1] == [1.1, reply ]
$threads[2] == [1.2, reply ]
$threads[3] == [1.2.1, reply ]
$threads[4] == [1.2.1.1, reply ]
$threads[5] == [2, post ]