---
name: "PPI::Token::BOM"
section: "3pm"
platform: "linux"
package: "perl-ppi"
version: "1.291-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/PPI::Token::BOM"
---

# PPI::Token::BOM(3pm)

Tokens representing Unicode byte order marks

## NAME

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

## INHERITANCE

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

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

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

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

## SUPPORT

See the support section in the main module

## AUTHOR

Chris Dolan \<cdolan@cpan.org\>

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