in reply to Re^4: Using map function to print few elements of list returned by sort function
in thread Using map function to print few elements of list returned by sort function
perl -F':' -lane ' push @{$h{$F[1]}}, [$F[0],$_] }{ print $_->[1] for map { ( sort {$b->[0] <=> $a->[0]} @$_ )[0..3] } val +ues %h' file 20470:ZM:Samfya:Africa 20149:ZM:Sesheke:Africa 18638:ZM:Siavonga:Africa 699385:ZW:Bulawayo:Africa 61739:ZW:Chinhoyi:Africa 47294:ZW:Chegutu:Africa 37423:ZW:Bindura:Africa
Please note that countries with less than 4 cities will have empty lines.
But I'd rather prefer chaining only maps...
Cheers Rolf
( addicted to the Perl Programming Language)
to avoid empty lines skip the -l option
perl -F':' -ane ' push @{$h{$F[1]}}, [$F[0],$_] }{ print $_->[1] for map { ( sort {$b->[0] <=> $a->[0]} @$_ )[0..3] } val +ues %h' file 20470:ZM:Samfya:Africa 20149:ZM:Sesheke:Africa 18638:ZM:Siavonga:Africa 699385:ZW:Bulawayo:Africa 61739:ZW:Chinhoyi:Africa 47294:ZW:Chegutu:Africa 37423:ZW:Bindura:Africa
values instead of keys
(List)[slice] instead of splice
-l chomps and sets auto-newline in $\
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^6: Using map function to print few elements of list returned by sort function
by jaypal (Beadle) on May 26, 2014 at 15:16 UTC |