my $gene = { lots => 'of', data => 'entries' };
my $transcript = { 'even' => 'more', data => 'entries', gene => $gene
+};
$gene->{transcript} = [ $transcript ];
I put everything in a result queue of type Thread::Queue. I dequeue and freeze the results to a YAML file after the program finishes, so that I don't have to calculate everything again and again. Unfortunately, Thread::Queue does a shared_clone on everything one throws at it.
This fact leads to the mentioned 'program requirements':
- Handle circular references
- Save some space with reusing references
I hope this answers your question.
|