<?xml version="1.0" encoding="windows-1252"?>
<node id="86914" title="(tye)Re2: 177- (Golf) LED Sign" created="2001-06-08 14:39:28" updated="2005-07-19 14:08:39">
<type id="11">
note</type>
<author id="22609">
tye</author>
<data>
<field name="doctext">
&lt;p&gt;
I figured out a way to drop the 8-char binary string 
to a 5-char binary string and simplify some of the
math.  Unfortunately, the simpler math uses + instead
of | so the precedence is wrong so I'd need two sets
of parens, which makes the math expression 2 characters
longer (despite the calculation being simpler).  That 
would still be an over-all net reduction by
one character.  But that involves recomputing all of
the bits, so I'm not including that trick.
&lt;/p&gt;&lt;p&gt;
But some standard golfing on the rest did get me down to
177 (&lt;b&gt;updated&lt;/b&gt; from 179) chars:
&lt;code&gt;#!/usr/bin/perl
open SEG, "&gt;segment.pl" or die "Can't write seg.pl: $!\n";
binmode SEG;
while(&lt;DATA&gt;){
s/::::::::/pack"H*",'1f10001100100111'/e;
s/!!!!!!!!!!!!!!!/pack"H*",'fca88a04228f12420caacc30125084'/e;
print SEG $_;
}
__END__
#!/usr/bin/perl

sub d{
y/01/ #/for@p=unpack"b5"x8,"::::::::";@s=grep$_,split/(..)/,
unpack"b*",'!!!!!!!!!!!!!!!';map{$l=$_;join($",map{y/-./ab/;
$p[4&amp;$l*4|3&amp;$s[$l+5*hex]]}split//,$_[0]).$/}0,1,1,2,3,3,4
}

print d("123-45");
print d("67.890");
&lt;/code&gt;
&lt;/p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- 
&lt;a href="/index.pl?node=tye&amp;lastnode_id=1072"&gt;tye&lt;/a&gt; 
(but my friends call me "Tye")</field>
<field name="root_node">
86805</field>
<field name="parent_node">
86859</field>
</data>
</node>
