#!/usr/bin/perl -w # generate_symbol_map.pl - Don Yang (uguu.org) # # 10/01/09 use strict; # Count all symbols my %symbols; while(my $line = <>) { foreach ($line =~ /(\S+)/g) { $symbols{$_}++; } } # Output replacement symbols by count my $index = 0; my $dict = join '', ('a' .. 'z', 'A' .. 'Z', '0' .. '9'); foreach my $i (sort {$symbols{$a} != $symbols{$b} ? $symbols{$b} <=> $symbols{$a} : $a cmp $b} keys %symbols) { printf '%5d ', $symbols{$i}; my $replacement; if( $index < 52 ) { $replacement = substr($dict, $index, 1); } else { my $d = $index - 52; $replacement = substr($dict, int($index / length($dict)), 1) . substr($dict, $index % length($dict), 1); } print "$i -> $replacement\n"; $index++; }