package GSM::Cell; use Moose; use MooseX::AttributeHelpers; with qw(GSM::Cell::Role::BcchChecks); has 'BCCH' => (is => 'rw', required => 1); has 'LAC' => (is => 'ro', required => 1); has 'CI' => (is => 'ro', required => 1); has 'ADJACENCIES' => ( metaclass => 'Collection::Hash', is => 'rw', isa => 'HashRef', default => sub {+{}}, provides => { exists => 'exists_adjacency', keys => 'adjacency_IDs', get => 'get_adjacency', set => 'add_adjacency', }, ); 1; #### package GSM::Cell::Role::BcchChecks; use Moose::Role; #requires qw(get_adjacency); # - error sub list_bcchs { my $self = shift; my %list = map {$_->BCCH => 1} $self , map($self->get_adjacency($_)->CELL , $self->adjacency_IDs); my @list = sort keys %list; @list; } 1;