You can't take a ref to an array slice, but you can get an array of refs to a slice of an array. The difference is subtle, but it has many of the same benefits.
my @a = (0..9);
my @b = ( \( @a ) )[0..4];
${ $b[3] } = 'It changed';
print "@a";
0 1 2 It changed 4 5 6 7 8 9
Examine what is said, not who speaks.
"Efficiency is intelligent laziness." -David Dunham
"When I'm working on a problem, I never think about beauty. I think only how to solve the problem. But when I have finished, if the solution is not beautiful, I know it is wrong." -Richard Buckminster Fuller
If I understand your problem, I can solve it! Of course, the same can be said for you.