Text-Banner reviews

RSS | Module Info

Text-Banner (1.00)

It doesn't install using cpan, and the directory structure seems messed up, so you have to download it and install it "by hand" (make / make install doesn't work either) from the tar file instead.

Once you do, you get something which is like the Unix "banner" command, but with a lot of "creeping features" and object-oriented guff syntax, so first of all you have to create your object with "new", then "set" your banner and then "fill" it and then "get" it - clearly a case of object oriented programming going too far. Why not just have one simple single routine called "banner" which prints a reasonable default banner using # or X or something?

Fortunately it doesn't use Moose, but even so honestly I'm not sure what the point of the features and the object orientation is. And the default behaviour is plain stupid, it prints out the banner using ones and zeros: seriously this is its output (sorry if fixed width gets messed up):

0000000 0000000 0000000 0000000 0000000 0000000 0000000 0011100
0011110 0100001 0000000 0011110 0111110 0001100 0111110 0011100
0100001 0100001 0000000 0100001 0100001 0010010 0100001 0011100
0100001 0111111 0000000 0100000 0100001 0100001 0100001 0001000
0100001 0100001 0000000 0100000 0111110 0111111 0111110 0000000
0100001 0100001 0000000 0100001 0100010 0100001 0100000 0011100
0011110 0100001 0000000 0011110 0100001 0100001 0100000 0011100

The other annoying thing about the module is that it stores its data as some kind of crushed binary, which superficially looks clever but actually will surely be a pain if you want to do something other than use the banner characters the author suggests.

You could use this if you're desperate to have a Perl solution, but I'd recommend using the C banner program from Cedar Solutions which comes with Cygwin instead, or if you want lots of font options you might also like "figlet". The banner which comes with Linux is not much use because it prints too big and vertically instead of horizontally.