From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

use strict;
use warnings FATAL => 'all';
use lib 'lib';
use Moose;
use feature 'state';
our %reference_cache;
my $ug = Data::UUID->new;
sub new {
my ($class) = @_;
state $instance;
if (! defined $instance) {
$instance = bless {}, $class;
}
return $instance;
}
sub cache_reference{
my ($self, $object_reference) = @_;
my $uuid = $ug->create_str();
my $guid = $uuid;
$reference_cache{$guid} = $object_reference;
return $guid;
}
sub resolve_reference{
my ($self, $perl_command) = @_;
return $reference_cache{$perl_command->{payload}[0]}
}
sub delete_reference{
my ($self, $perl_command) = @_;
delete $reference_cache{$perl_command->{payload}[0]};
}
no Moose;
1;