open my $file, '<', shift; binmode($file); my %seen = (); $/ = \( 1024 * 1024 ); # Set default buffer size while ( <$file> ) { for my $buf (split //, $_) { if ( !$seen{$buf} ) { $seen{$buf} = 1; } else { $seen{$buf}++; } } } print "$_ - $seen{$_}\n" for ( keys %seen );