$ perl -e '$n=$ARGV[0];@a=map{$_->[1]}sort{$a->[0] <=>
$b->[0]}map{[length($_),$_]} @ARGV[1..$#ARGV]; print "@a[0..$n]"' 4 *

clarifying

$ perl -e '
$n=$ARGV[0];
@a=map{$_->[1]}
        sort{$a->[0] <=> $b->[0]}
        map{[length($_),$_]}
    @ARGV[1..$#ARGV];
print "@a[0..$n]"' 4 *


-- vish




On 9 September 2012 18:39, ynon perek <[email protected]> wrote:
>
> Hi All,
>
> I'm trying to turn a short program into a one-liner. The program takes an 
> argument "n" and prints the first n file names sorted by file name length, 
> with no duplicates in length.
>
> Here's what I wrote for the original code:
> https://gist.github.com/3684778
>
> The part I found difficult is to sort a dictionary by its keys, and print the 
> top n values...
>
> Ideas ?
>
> (clarification: this is just for fun, nothing important, and I'm not 
> interested in string based solutions, already got one on the same gist).
>
> Cheers,
>   Ynon
>
> --
>
> כותב הרצאות ? מדבר מול קהל ? הבלוג שלי לומד לדבר כתוב במיוחד בשבילך.
>
>
> _______________________________________________
> Perl mailing list
> [email protected]
> http://mail.perl.org.il/mailman/listinfo/perl
_______________________________________________
Perl mailing list
[email protected]
http://mail.perl.org.il/mailman/listinfo/perl

Reply via email to