The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.


PPI::Token::BOM - Tokens representing Unicode byte order marks


  isa PPI::Token
      isa PPI::Element


This is a special token in that it can only occur at the beginning of documents. If a BOM byte mark occurs elsewhere in a file, it should be treated as PPI::Token::Whitespace. We recognize the byte order marks identified at this URL:

    UTF-32, big-endian     00 00 FE FF
    UTF-32, little-endian  FF FE 00 00
    UTF-16, big-endian     FE FF
    UTF-16, little-endian  FF FE
    UTF-8                  EF BB BF

Note that as of this writing, PPI only has support for UTF-8 (namely, in POD and strings) and no support for UTF-16 or UTF-32. We support the BOMs of the latter two for completeness only.

The BOM is considered non-significant, like white space.


There are no additional methods beyond those provided by the parent PPI::Token and PPI::Element classes.


See the support section in the main module


Chris Dolan <>


Copyright 2001 - 2011 Adam Kennedy.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

The full text of the license can be found in the LICENSE file included with this module.