Ringrazio Mich_ e chiedo scusa.
	codice:
	my $page_number = 1;
my %idx;
while(<>) {
        for my $word ( split(/\s+/) ) {
                $idx{$word}{$page_number} = 1;
        }
        $page_number++ if ( /\014/ );
}
foreach my $word (sort keys %idx) {
        printf "%-20s ", $word;
        print comma_sep(sort {$a <=> $b} keys %{$idx{$word}});
        print "\n";
}
sub comma_sep {
        my $ret = "";
        foreach (@_) { $ret .= $_ . ", "; }
        chop $ret;                                       
        chop $ret;
        return $ret;
}
 
Per pseudocodice, pseudolinguaggio o linguaggio di progetto si intende un linguaggio di programmazione fittizio, non direttamente compilabile o interpretabile da un programma compilatore o interprete, il cui scopo è quello di rappresentare algoritmi.(Fonte:Wikipedia)
In pratica sto cercando di decodificare il significato di questo script; quello che ho capito ad esempio è che  \014 indica UN FORM-FEED, (quindi segna l'inserimento di una pagina nuova). Forse split(/\s+/) è una funzione split appliccata ad una regex.
Ma che cosa indichino i caratteri $ % non ne ho la minima idea, così il resto dello script: $  serve per introdurre una variabile?
Grazie a chi mi può dare una mano, ... altrimenti dovrò mettermi allo studio di PERL.