human.pl: print map{$$_[0]}sort{$$b[1]!~/\D/<=>$$a[1]!~/\D/||(grep$_,map{$_>@$b?1:($@=($$a [$_]!~/\D/&&length$$a[$_]<=>length$$b[$_])||$$a[$_]cmp$$b[$_])?$@:0}1..@$a)[0]}s ort{@$b<=>@$a}map{[$_,split/(\d+|\n)/,lc]}<> shuffle.pl: print map{$n=rand@x;@x[$n,-1]=@x[-1,$n];pop@x}@x=<> select.pl: @x=<>;print map{$n=rand@x;@x[$n,-1]=@x[-1,$n];pop@x}0,1