sub _save { my $cont = $req->content; $logs->enqueue("Cacheing $cont->{'type'} $cont->{'id'}") if $DEBUG; my $time = $::server_time; if ($cont->{'type'} eq 'planet') { lock %planets; if (exists $planets{$cont->{'id'}}) { unless ($planets{$cont->{'id'}}->{'deleted'}) { my $old = thaw $planets{$cont->{'id'}}->{'object'}; $old = __merge($old, $cont->{'object'}); $planets{$cont->{'id'}}->{'object'} = freeze $old; $planets{$cont->{'id'}}->{'atime'} = $time; $planets{$cont->{'id'}}->{'modified'} = 1; } } else { # this is the point our last discussion was about: my %el : shared = ( 'object' => freeze($cont->{'object'}), 'atime' => $time, 'modified' => 1, 'deleted' => 0 ); $planets{$cont->{'id'}} = \%el; } } [...] }