use Data::Dump qw(dump);
my @dna = qw(A T T G C);
print dump \@dna;
my @view = (
sub : lvalue { $dna[1] },
sub : lvalue { $dna[2] },
);
#mutate
$view[0]->() = 'x';
$view[1]->() = 'x';
print dump \@dna;
$view[0] = sub : lvalue { $dna[4] };
print dump \@dna;
# print ["A", "T", "x", "G", "x"]
####
$view[0]->()
####
$view[0]