---
name: "PerlIO::encoding"
section: "3perl"
platform: "linux"
package: "perl"
version: "5.44.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/PerlIO::encoding/3perl"
---

# PerlIO::encoding(3perl)

encoding layer

## NAME

PerlIO::encoding - encoding layer

## SYNOPSIS

```
  use PerlIO::encoding;
  open($f, "<:encoding(foo)", "infoo");
  open($f, ">:encoding(bar)", "outbar");
  use Encode qw(:fallbacks);
  $PerlIO::encoding::fallback = FB_PERLQQ;
```

## DESCRIPTION

This PerlIO layer opens a filehandle with a transparent encoding filter.

On input, it converts the bytes expected to be in the specified character set and encoding to Perl string data (Unicode and Perl's internal Unicode encoding, UTF-8).  On output, it converts Perl string data into the specified character set and encoding.

When the layer is pushed, the current value of `$PerlIO::encoding::fallback` is saved and used as the CHECK argument when calling the Encode methods **encode()** and **decode()**.

## SEE ALSO

open, Encode, "binmode" in perlfunc, perluniintro
