From: "Ing. Branislav Gerzo" <[EMAIL PROTECTED]>
> I am thinking about making clear and short script to rotate array,
> let's say:
>
> input:
> @list = (1 .. 20);
> $start = 10; #starting position
> $values = 10; #how much values in result
many (taky si to furt pletu)
> how to get output:
> @result = ( 5, 6, 7, 8, 9, 11, 12, 13, 14, 15 ); #10 values
> (I don't want $start in @result)
>
> ofcoure script should work with overlapping too:
> @list = (1 .. 20);
> $start = 18;
> $items = 10;
>
> output:
> @result = ( 13, 14, 15, 16, 17, 19, 20, 1, 2, 3 ); #10 values
Assuming $values does not get bigger than the number of items in the
list and $start is always <= the number of items in the list:
@list = (@list, @list);
@result = (
@list[($start-$values/2-1) .. ($start-2)],
@list[($start) .. ($start+$values/2-1)]
);
HTH, Jenda
===== [EMAIL PROTECTED] === http://Jenda.Krynicky.cz =====
When it comes to wine, women and song, wizards are allowed
to get drunk and croon as much as they like.
-- Terry Pratchett in Sourcery
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>