my @indices=0..$#array; # this is a NOP if $offset is 0, I think my @slice=splice @indices,-$offset; unshift @indices,@slice; foreach my $index(@indices) { # do whatever you want here print $array[$index]; }