#!/usr/bin/perl -w use strict; $_ = "Just another Perl hacker"; my %bitmap = ( A => [ 0b01110, 0b10001, 0b11111, 0b10001, 0b10001, ], C => [ 0b01110, 0b10001, 0b10000, 0b10001, 0b01110, ], E => [ 0b11111, 0b10000, 0b11110, 0b10000, 0b11111, ], H => [ 0b10001, 0b10001, 0b11111, 0b10001, 0b10001, ], J => [ 0b11111, 0b00100, 0b00100, 0b00100, 0b11000, ], K => [ 0b10001, 0b10010, 0b11100, 0b10010, 0b10001, ], L => [ 0b10000, 0b10000, 0b10000, 0b10000, 0b11111, ], N => [ 0b10001, 0b11001, 0b10101, 0b10011, 0b10001, ], O => [ 0b01110, 0b10001, 0b10001, 0b10001, 0b01110, ], P => [ 0b11110, 0b10001, 0b11110, 0b10000, 0b10000, ], R => [ 0b11110, 0b10001, 0b11110, 0b10010, 0b10001, ], S => [ 0b01111, 0b10000, 0b01110, 0b00001, 0b11110, ], T => [ 0b11111, 0b00100, 0b00100, 0b00100, 0b00100, ], U => [ 0b10001, 0b10001, 0b10001, 0b10001, 0b01110, ], ); for (split /\s/, uc) { my @ee; for my $char (/./g) { my @rastered = map { my $bitrow = $_; my $pixrow; for (16, 8, 4, 2, 1) { if ($bitrow > $_ - 1) { $bitrow -= $_; $pixrow .= $char; } else { $pixrow .= ' '; } } $pixrow . ' '; } @{ $bitmap{$char} }; $ee[$_] .= $rastered[$_] for 0 .. 4; } print join ("\n", @ee) . "\n\n"; }