in reply to looping backwards

I'd use a slice:
#!/usr/bin/perl use strict; use warnings; my @arr = qw /Fred Mark Joe Mary Paul/; local $, = " "; for (my $o = 0; $o < @arr; $o ++) { print "$o:", @arr [$#arr - $o + 1 .. $#arr, 0 .. $#arr - $o], "\n" +; } __END__ 0: Fred Mark Joe Mary Paul 1: Paul Fred Mark Joe Mary 2: Mary Paul Fred Mark Joe 3: Joe Mary Paul Fred Mark 4: Mark Joe Mary Paul Fred

Abigail

Replies are listed 'Best First'.
Re: Re: looping backwards
by eyepopslikeamosquito (Archbishop) on Jul 30, 2003 at 03:19 UTC

    Very nice. Minor shortening to:

    @arr [@arr - $o .. $#arr, 0 .. $#arr - $o]

    Using the % trick, you might try this instead:

    @arr [map $_ % @arr, @arr - $o .. @arr - $o + $#arr] or: my $p = @arr - $o; @arr [map $p++ % @arr, @arr]

    So your slice looks a bit better.