package Maze { use Moo; use MooX::Types::MooseLike::Base qw(:all); has 'maze_map' => ( is => 'rw', isa => ArrayRef[ArrayRef[Str]], handles => { my_array => 'elements' } ); has tile_x_dim => ( is => 'rw' ); has tile_y_dim => ( is => 'rw' ); } my @drago = ([1,2,3],[1,3,4]); my $maze = Maze->new( maze_map => \@drago, tile_x_dim => 28, tile_y_dim => 36 );