Circular lists could be handled in the traditional fashion with linked lists, or you could just do something like this with an array:
unshift(@array, pop(@array)); # the last shall be first push(@array, shift(@array)); # and vice versa