http://www.insightbook.co.kr/post/3814 에 나와 있는 문제 풀이
Perl의 문법중에 배열 slice문법을 사용해서 한방에 여러 요소들을 치환하는 테크닉을 썼음
#!/usr/bin/env perl my @arr = 1..8; print "before @arr\n"; rotate(\@arr, 2, 6, 7); print "after @arr\n"; sub rotate { my ($a, $s, $t, $k) = @_; $k %= ($t-$s+1); @$a[$s+$k..$t, $s..$s+$k-1] = @$a[$s..$t]; }
결과
before 1 2 3 4 5 6 7 8
after 1 2 6 7 3 4 5 8