@a = 0..4; # a simple 5 element array print @a[-2..1], "\n"; # 3 4 0 1 print @a[-5..4], "\n"; # 0 1 2 3 4 0 1 2 3 4 #### @j=@a=@p=@h= qw/ J u s t A n o t h e r P e r l H a c k e r . /; # scalar @j == 22; print ( ( ( ( ( @j )[-22..21],q, , # doubles the array & adds a space at the end. )[-45..44] # doubles the double. )[0,23,47,70,44] # Gets 1st char from 1st array, 2nd from 2nd, etc. ), # 'J','u','s','t',' ' ( ( ( ( ( ( @a # 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 )[-7..10] # H-a-c-k-e-r-.-J-u-s-t-A-n-o-t-h-e-r )[-18..17] # Doubles it ),q, , # Add a space at the end )[-8..-1] # last 8 characters ), # 'A','n','o','t','h','e','r',' ' ( ( ( ( ( @p # 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 )[-8..11] # l-H-a-c-k-e-r-.-J-u-s-t-A-n-o-t-h-e-r-P )[0,-1] # P-l )[-2..1] # P-l )[1,2] # P-l ) # TRICKY! This is subscript into A-n-o-t-h-e-r-P-l # The subscript -5..4 gets the 'e','r', in another )[-10..-2,-5..-4,-1], # 'A','n','o','t','h','e','r',' ','P','e','r','l' ( ( ( ( ( ( @h ),q, , # Add a space at the end # 0 1 2 3 4 5 6 7 8 9 0 1 )[11..22] # P-e-r-l-H-a-c-k-e-r-.- # 0 1 2 3 4 5 6 7 8 9 0 )[-8..2] # H-a-c-k-e-r-.- -P-e-r )[9,10,6,7,0..3] # e-r-.- -H-a-c-k )[-5..2] # ' ','H','a','c','k','e','r','.' ) );