#!/usr/bin/perl -s $usage = " -h displays this help and exits -r reverse sorting -s sort by number of topics -s=2 sort by number of answers -s=3 sort by average "; if ($h) {print $usage;exit} while ($f = shift) {push(@f,$f)} @f || (@f = (<*.dat>,<*.dat2>)); @f = $r ? reverse sort @f : sort @f; for $p (@f) { $ts += $t = $t{$p} = -s $p ? `grep % "$p" | wc -l` + 1 : 0; $as += $a = $a{$p} = $t ? `cat "$p" | wc -l` - 2 * $t + 1 : 0; $m = $m{$p} = $t ? $a/$t : 0; write unless $s } if ($s) { @f = sort { if ($s == 1) {$t{$b} <=> $t{$a}} elsif ($s == 2) {$a{$b} <=> $a{$a}} elsif ($s == 3) {$m{$b} <=> $m{$a}} } @f; @f = reverse @f if $r; for (@f) { $p=$_; $t = $t{$_}; $a = $a{$_}; $m = $m{$_}; write } } print "\n"; ($p,$t,$a,$m) = ("Total (".@f.")",$ts,$as,$as/$ts); write; format STDOUT_TOP = Categoria Tópicos Respostas Média . format STDOUT = @<<<<<<<<<<<<<<<<<<<<<<< @#### @#### @###.## $p $t $a $m .