http://www.perlmonks.org?node_id=86945


in reply to (Golf) LED Sign

Whilst my answer is longer, I think you will find it simulates a 7 segment display a little closer, and it has a larger, more readable font.

This one weighs in at 299 characters, excluding line breaks.

sub f{ $i=$_[0];$i=~s/(\d)\./$1|'@'/eg;@c=split//,"\brew\$]m.k{%\177o"; for$a(0..8){for$l(split//,$i){$x=ord$c[ord($l&"?")-45];print do{ if($a%4){$q=($x>>($a>4)*3)&6;($q&2?"|":" ")." ".($q&4?"|":" ") ." ";}else{($x>>($a>>2)*3&1?" ----- ":" "x7). ($a==8&&(($l&"@")eq"@")?" X ":" ");}}}print"\n";}} f(-123.04); f(56789);

And the output is:

                     -----     -----              
                |         |         |   |     |   
                |         |         |   |     |   
                |         |         |   |     |   
 -----               -----     -----     -----    
                |   |               |         |   
                |   |               |         |   
                |   |               |         |   
                     -----     -----  X           
 -----     -----     -----     -----     -----     -----    
|         |               |   |     |   |     |   |     |   
|         |               |   |     |   |     |   |     |   
|         |               |   |     |   |     |   |     |   
 -----     -----               -----     -----              
      |   |     |         |   |     |         |   |     |   
      |   |     |         |   |     |         |   |     |   
      |   |     |         |   |     |         |   |     |   
 -----     -----               -----     -----     -----    

Not bad for a first golf attempt? :-)