#!/usr/bin/perl -w use strict; my $blocklen; my $bitlen; my $maxN; if (@ARGV < 1) { print "Usage: $0 \n"; exit 1; } $bitlen = shift; $maxN = 2 ** $bitlen - 1; $blocklen = int(log($maxN)/log(10.0) / 3.0); #$bitlen = -1; my $cnt = 0; my $x = ""; while (<>) { chop; my $s = $_; if ($bitlen == -1) { $blocklen = int( (length($s)+2) / 3); } if (length($s) > $blocklen*3) { print("Illegal format in line $. \n"); exit(1); } my $zeros = "0" x ($blocklen*3); $s = substr "$zeros$s", -$blocklen*3; for ($cnt = 0; $cnt < $blocklen; $cnt++) { my $y = substr $s, 0, 3; $s = substr $s, 3; my $adds = chr($y); $x = "$x$adds"; } } $x =~ s/ *$//; print "$x";