my @ones = (0); push @ones, map $_ + 1, @ones for 1 .. 8; my @zeros = map 8 - $_, @ones; ... read($fh, $buf, 1) or die ...; my $val = ord($buf); printf "%08b has %s ones and %s zeros\n", $val, $ones[$val], $zeros[$val];