[Belfast-pm] unshift-y bop-op-op-op, just blows me away </hair>

Marty Pauley marty+belfast-pm at kasei.com
Fri Dec 24 21:25:01 CST 2004


On 2004-12-23, Marc wrote:
> 
> This is annoying me. A better way please?
> 
> perl -e '@l = (1..10); do { warn join(" ", @l), "\n"; unshift @l, pop @l; } for (0 .. 10);'

Well, for me a "better" way would be useful for other things and not restricted
to the numbers from 1 to 10.

$ perl -e'$i=(@l=(@ARGV)x2)/2;warn"@l[$i--..$i+ at l/2]\n"while$i' 1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
10 1 2 3 4 5 6 7 8 9
9 10 1 2 3 4 5 6 7 8
8 9 10 1 2 3 4 5 6 7
7 8 9 10 1 2 3 4 5 6
6 7 8 9 10 1 2 3 4 5
5 6 7 8 9 10 1 2 3 4
4 5 6 7 8 9 10 1 2 3
3 4 5 6 7 8 9 10 1 2
2 3 4 5 6 7 8 9 10 1

$ perl -e'$i=(@l=(@ARGV)x2)/2;warn"@l[$i--..$i+ at l/2]\n"while$i' foo bar baz
foo bar baz
baz foo bar
bar baz foo

And, for all you (Bible |Uni)code fans:
$ perl -e'$i=(@l=(@ARGV)x2)/2;warn"@l[$i--..$i+ at l/2]\n"while$i' א ב ג ד ה ו ז ח ט י כ ל מ נ ס ע
א ב ג ד ה ו ז ח ט י כ ל מ נ ס ע
ע א ב ג ד ה ו ז ח ט י כ ל מ נ ס
ס ע א ב ג ד ה ו ז ח ט י כ ל מ נ
נ ס ע א ב ג ד ה ו ז ח ט י כ ל מ
מ נ ס ע א ב ג ד ה ו ז ח ט י כ ל
ל מ נ ס ע א ב ג ד ה ו ז ח ט י כ
כ ל מ נ ס ע א ב ג ד ה ו ז ח ט י
י כ ל מ נ ס ע א ב ג ד ה ו ז ח ט
ט י כ ל מ נ ס ע א ב ג ד ה ו ז ח
ח ט י כ ל מ נ ס ע א ב ג ד ה ו ז
ז ח ט י כ ל מ נ ס ע א ב ג ד ה ו
ו ז ח ט י כ ל מ נ ס ע א ב ג ד ה
ה ו ז ח ט י כ ל מ נ ס ע א ב ג ד
ד ה ו ז ח ט י כ ל מ נ ס ע א ב ג
ג ד ה ו ז ח ט י כ ל מ נ ס ע א ב
ב ג ד ה ו ז ח ט י כ ל מ נ ס ע א

Extra point for those who find where "Marc" and "sheep" intersect.

-- 
Marty


More information about the Belfast-pm mailing list