in reply to a referencable array slice (so assigning to it modifes the original)

I think it would be just as easy to use references to the original items instead. Creating the "view" is easy (put a backslash before the slice), and it doesn't rely on lvalue subs, which are still marked as experimental in perlsub.

use Data::Dumper; use Test::More 'no_plan'; my @dna = qw( A T T G C ); my @view = \@dna[1,2]; is( ${$view[0]}, $dna[1], '${$view[0]} is $dna[1]' ); ${$view[0]} = 'x'; is( ${$view[0]}, $dna[1], 'changing ${$view[0]} changes $dna[1]' ); print Dumper \@view; __END__ ok 1 - ${$view[0]} is $dna[1] ok 2 - changing ${$view[0]} changes $dna[1] $VAR1 = [ \'x', \'T' ]; 1..2

The syntax for accessing the view vs. the original array is clumsy, but that's the same as if you were using lvalue subs. If you change the original array to use references also (making them equally clumsy), the views become transparent.

my @dna = \qw( A T T G C ); my @view = @dna[1,2]; is( ${$view[0]}, ${$dna[1]}, '${$view[0]} is ${$dna[1]}' ); ${$view[0]} = 'x'; is( ${$view[0]}, ${$dna[1]}, 'changing ${$view[0]} changes ${$dna[1]}' );

I can't say I recommend that in general, but it might work well for you, if that's your goal.