179 chars:
sub led{
($b=pop)=~y/0-9.\-\0-~/\0-\cK/d;
join$/,
map{join$",
($"x4,'X ',' X','X X','X'x4)[(/./g)[unpack'C*',$b]]
}424434444400,
(322231123300)x2,
324444424404,
(321222323200)x2,
(424x4)-4,""
}
print led @ARGV ? shift : "19QQ86\t-- \@0134.72x-0(?)";
(Using hex conversion for the string (and to delete unwanted characters! ) and an array slice of an array slice to generate the lines.)
(Change the trailing ' ~ ' to a ' ÿ '(" ÿaut "?) to reject 8-bit chars too -- I wasn't sure how it would travel inside code tags.)
update:  or 172 chars w/o argument checking and putting the '-' first:
($b=pop)=~y/-0-9./\0-\cK/;join$/,
map{join$",('X ',$"x4,' X','X X','X'x4)[(/./g)[unpack'C*',$b]]}
142443444441,(132223002331)x2,432444442441,(132022232321)x2,1 .424x4
,""
 
p
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.