use strict; use warnings; use Data::Alias; my @data = ( 1 .. 3 ); my @attributes = ( 'a' .. 'd' ); my @master = ( scalar @data, @data, @attributes ); alias my @alias = @master[ 1 + $master[0] .. $#master ]; print "After alias\n"; print "master: ", join(q{,}, @master ), "\n"; print "attrib: ", join(q{,}, @alias ), "\n"; print "\n"; $alias[0] = 'z'; print "After change\n"; print "master: ", join(q{,}, @master ), "\n"; print "attrib: ", join(q{,}, @alias ), "\n"; print "\n"; splice @master, 2, 0, '6'; $master[0]++; print "After splice\n"; print "master: ", join(q{,}, @master ), "\n"; print "attrib: ", join(q{,}, @alias ), "\n"; print "\n"; #### After alias master: 3,1,2,3,a,b,c,d attrib: a,b,c,d After change master: 3,1,2,3,z,b,c,d attrib: z,b,c,d After splice master: 4,1,6,2,3,z,b,c,d attrib: z,b,c,d