codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
use strict; use warnings; use Data::Dumper; my @l = ( [qw(a b c)], [qw(d e)], [qw(f g h)], [qw(d e)], [qw(i j k l)], [qw(m n)], [qw(o)] ); print "Original list:\n"; print Dumper(@l), "\n"; print "(a) Sublists sorted by length:\n"; print Dumper(lsort(@l)), "\n"; print "(b) Sublists sorted by length frequency:\n"; print Dumper(lfsort(@l)), "\n"; sub lsort { return map { $_->[0] } sort { $a->[1] cmp $b->[1] } map { [$_, scalar @$_] } @_; } sub lfsort { my %freq_of; foreach my $sublist (@_) { $freq_of{scalar @$sublist}++; } return map { $_->[0] } sort { $a->[1] cmp $b->[1] } map { [$_, $freq_of{scalar @$_}] } @_; }
Private
[
?
]
Run code
Submit