Text::FIGlet::Control - control file support for Text::FIGlet


  use Text::FIGlet;

  my $flc = Text::FIGlet->new(-C=>'upper.flc');

  print $flc->tr("Hello World");


Text::FIGlet::Control uses control files, which tell it to map certain input characters to certain other characters, similar to the Unix tr command. Control files can be identified by the suffix .flc. Most Text::FIGlet::Control control files will be stored in FIGlet's default font directory.

The following control file commands are supported, for more detail see figfont.txt included with this distribution.

f Freeze

A kind of "save state", executes all previously accumulated translations before continuing.

t Translate

Both the explicit forms "t in out" and "t in-range out-range" as well as the implicit form "number number".

Note that if you are mapping in negative characters, you will need to figify in Unicode mode -U. See also u below.

u Unicode

Process text as Unicode (UTF-8).

Note that this is required for perl 5.6 if you are doing negative mapping.




Control objects are used to peform various text translations specified by an flc file.

  $_ = "Hello World";
  my $flc = Text::FIGlet::Control->new(-C=>'rot13');
  print $font->figify($flc->());
  #The text "Urryb Jbeyq" is output.

Multiple -C parameters may be passed, and the object returned will be an aggregate of the specified controls.

  my $flc  = Text::FIGlet::Control->new(-C=>'upper', -C=>'rot13');
  my $out0 = $flc->();
  #The text "uRRYB jBEYQ" is output.

  #This is equivalent
  my $flc1  = Text::FIGlet::Control->new(-C=>'upper',);
  my $flc2  = Text::FIGlet::Control->new(-C=>'rot13');
  my $out1 = $flc2->($flc1->();

  #So is this
  my $out2 = $flc1->($flc2->());
  #NOTE: Controls are not commutative.
  #Order of chained controls is only
  #insignificant for some controls.



Process text in scalar.


Text::FIGlet::Control will make use of these environment variables if present


The default location of fonts. If undefined the default is /usr/games/lib/figlet


FIGlet control files are available at


There is a mystery bug in perls 5.6.1 and 5.6.2 which can cause seemingly simple transliterations to fail. The standard figlet(1) upper.flc is an example of such a transliteration. For this reason, the enclosed upper.flc uses a freeze after the ASCII swapping. I've no idea why, but it seems to work. If you experience similar problems with other control files, try some shotgun debugging with freezes yourself. Modern perls, 5.6.0 and even 5.005_05 do not have this problem.


Text::FIGlet, figlet(6), tr(1)


Jerrad Pierce

                **                                    />>
     _         //                         _  _  _    / >>>
    (_)         **  ,adPPYba,  >< ><<<  _(_)(_)(_)  /   >>>
    | |        /** a8P_____88   ><<    (_)         >>    >>>
    | |  |~~\  /** 8PP"""""""   ><<    (_)         >>>>>>>>
   _/ |  |__/  /** "8b,   ,aa   ><<    (_)_  _  _  >>>>>>>
  |__/   |     /**  `"Ybbd8"'  ><<<      (_)(_)(_) >>
               //                                  >>>>    /