in reply to Table Manipulation

Are you familiar with the statistical programming language R? You can use Statistics::R to take advantage of the merge function of R to merge two tables based on a specific column(s). If you don't already know R, this might be a time-sink.

Alternatively, you could make two hashes of arrays (one for each of tables 1 & 2) and iterate through them to output Table 3. Here is the hash structure for the second example you gave:

my %table_1 = ( 0 => [ [ 1, 1 ], [ 0, 2 ] ], 1 => [ [ 1, 3 ] ], ); my %table_2 = ( 0 => [ [ 0, 0, 1 ] ], 1 => [ [ 1, 0, 1 ], [ 0, 1, 0 ] ], );