Here is a program that writes a file that has a 186-char subroutine which is my golf entry:
#!/usr/bin/perl
open SEG, ">segment.pl" or die "Can't write seg.pl: $!\n";
binmode SEG;
while(<DATA>){
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,"::::::::";
y/-./ab/for@n=split//,pop;
@s=grep$_,split/(..)/,unpack"b*",'!!!!!!!!!!!!!!!';
map{$l=$_;join" ",map($p[$l<<2&4|3&$s[$l+5*hex$_]],@n),$/}
0,1,1,2,3,3,4
}
print d("123-45");
print d("67.890");
So if you download this code into a file called, for example,
"seg1.pl", then you could do the following:
$ perl seg1.pl
$ perl segment.pl
# ##### ##### # # #####
# # # # # #
# # # # # #
# ##### ##### ##### ##### #####
# # # # #
# # # # #
# ##### ##### # #####
##### ##### ##### ##### #####
# # # # # # # #
# # # # # # # #
##### # ##### ##### # #
# # # # # # # #
# # # # # # # #
##### # # ##### ##### #####
$
The reason for the extra step is that I have two binary strings as part of my subroutine.
I suspect the sub can be golfed quite a bit still... Have fun. (:
-
tye
(but my friends call me "Tye")