Rewrote in Perl for easy charset handling

This commit is contained in:
hjp 2016-02-24 14:41:19 +00:00
parent 2552b38965
commit 7aa8246502
2 changed files with 43 additions and 0 deletions

View File

@ -3,6 +3,9 @@ include GNUmakerules
all: charhist all: charhist
charhist: charhist.pl
cp $^ $@
chartab: chartab:
clean: clean:
rm -f charhist core foo bar baz rm -f charhist core foo bar baz

40
charhist/charhist.pl Normal file
View File

@ -0,0 +1,40 @@
#!/usr/bin/perl
use warnings;
use strict;
use Getopt::Long;
use Pod::Usage;
use autodie;
my $encoding;
GetOptions('encoding=s', \$encoding) or pod2usage();
my %hist;
if (@ARGV) {
readfile($_) for @ARGV;
} else {
readfile();
}
binmode STDOUT, ":encoding(UTF-8)";
for (sort keys %hist) {
my $cp = ord;
printf("%x %d %o %s\t%d\n", $cp, $cp, $cp, /\p{Graph}/ ? $_ : ".", $hist{$_});
}
sub readfile {
my ($filename) = @_;
my $fh;
if (defined $filename) {
open $fh, "<", $filename;
} else {
$fh = \*STDIN;
}
binmode $fh, ":encoding($encoding)";
while (<$fh>) {
for my $c (split(//)) {
$hist{$c}++;
}
}
}