in reply to printing every 2nd entry in a list backwards
$ cat in.txt 1 22 3 -4 a b c d e f g h i j k l m n o $ perl -anle 'print "@F[map $#F-$_*2, 0..$#F/2]"' in.txt -4 22 a c f d j h o m k
But seriously, there are lots of ways to do this. Just one of many:
while (<>) { my @fields = split; for (my $i=$#fields; $i>=0; $i-=2) { print "$fields[$i] "; } print "\n"; }
Update: As for your code, I'd probably have used for instead of map, but other than that it's a decent solution. Just for fun, a different way to write that might be: ++$i&1 and print "$_ " for reverse split; although that might be getting a little too clever ;-) This is a fun exercise in TIMTOWTDI! Update 2: Changed wording a bit.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: printing every 2nd entry in a list backwards
by Anonymous Monk on May 19, 2017 at 12:25 UTC | |
by haukex (Archbishop) on May 19, 2017 at 12:43 UTC | |
by Anonymous Monk on May 19, 2017 at 13:06 UTC | |
by haukex (Archbishop) on May 19, 2017 at 13:13 UTC | |
by vrk (Chaplain) on May 19, 2017 at 14:04 UTC | |
|