PPI::Token::BOM(3) User Contributed Perl Documentation PPI::Token::BOM(3)

# [NAME](#NAME)

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

# [INHERITANCE](#INHERITANCE)

```
  PPI::Token::BOM
  isa PPI::Token
      isa PPI::Element
```

# [DESCRIPTION](#DESCRIPTION)

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: &lt;https://web.archive.org/web/https://www.unicode.org/faq/utf\_bom.html#BOM&gt;

```
    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.

# [METHODS](#METHODS)

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

# [SUPPORT](#SUPPORT)

See the support section in the main module

# [AUTHOR](#AUTHOR)

Chris Dolan &lt;cdolan@cpan.org&gt;

# [COPYRIGHT](#COPYRIGHT)

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.

2026-08-18 perl v5.44.0

---

Document: PPI::Token::BOM(3pm) from perl-ppi 1.291-r1 (Chainguard OS)
Source: https://github.com/Perl-Critic/PPI
