Give Tree::DAG_Node a look.
use Tree::DAG_Node;
my $root = Tree::DAG_Node->new();
$root->name("I'm the tops");
my $new_daughter = $root->new_daughter;
$new_daughter->name("More");
It includes accessor methods 'mother' and 'daughters', etc.