#! perl -slw use strict; sub refSlice{ return \@_ } ## return a reference to an array of aliases! my @a = 1 .. 10; print "Original array:\n@a"; my $refSliceA = refSlice @a[ 2 .. 8 ]; print "\nsliceA:\n@$refSliceA"; my $refSliceB = refSlice @a[ 1, 3, 5, 7, 9 ]; print "\nsliceB:\n@$refSliceB"; $_ **= 2 for @$refSliceA; print "\nsliceA modified:\n@$refSliceA"; $_ /= 2 for @$refSliceB; print "\nsliceB modified:\n@$refSliceB"; print "\nArray after slice operations:\n@a"; __END__ C:\test>refslice.pl Original array: 1 2 3 4 5 6 7 8 9 10 sliceA: 3 4 5 6 7 8 9 sliceB: 2 4 6 8 10 sliceA modified: 9 16 25 36 49 64 81 sliceB modified: 1 8 18 32 5 Array after slice operations: 1 1 9 8 25 18 49 32 81 5