package Transit;
use Moose;
. . .
use parent 'Transit::Map';
my $map = Transit::Map->new;
####
package Transit::Map;
use Moose;
. . .
has 'map_data' => ( is => 'ro', writer => '_map_data', );
sub BUILD {
my $self = shift;
my $args = shift;
$self->_load_map_data;
return;
}
####
use Transit;
my $c = Transit->new( );
[change some values of node attributes]
my $d = Transit->new( );
say "first map_info object: ", $c->map_data;
say "second map_info object: ", $d->map_data;
####
first map_info object: HASH(0xb559c10)
second map_info object: HASH(0xae699a8)