##
while(1)
{ my %INFO = ();
.... stuff-which-populates-%INFO ...
my $dumped = Dumper(\%INFO);
print $parent_fh ":MSG:${dumped}:DONE:\n";
sleep 10;
}
####
state $collected;
$num = read($child_fh, $buf, 1e6);
if ($num)
{ $collected .= $buf;
if ($collected =~ /:MSG:(.*):DONE:/s)
{ $dumper = $1;
%info = %{ eval $dumper }
$collected = "";
}
}