PerlIO::scalar(3pm) Perl Programmers Reference Guide PerlIO::scalar(3pm)

# [NAME](#NAME)

PerlIO::scalar - in-memory IO, scalar IO

# [SYNOPSIS](#SYNOPSIS)

```
   my $scalar = '';
   ...
   open my $fh, "<",  \$scalar or die;
   open my $fh, ">",  \$scalar or die;
   open my $fh, ">>", \$scalar or die;
```

or

```
   my $scalar = '';
   ...
   open my $fh, "<:scalar",  \$scalar or die;
   open my $fh, ">:scalar",  \$scalar or die;
   open my $fh, ">>:scalar", \$scalar or die;
```

# [DESCRIPTION](#DESCRIPTION)

A filehandle is opened but the file operations are performed "in-memory" on a scalar variable. All the normal file operations can be performed on the handle. The scalar is considered a stream of bytes. Currently fileno($fh) returns -1.

Attempting to open a read-only scalar for writing will fail, and if warnings are enabled, produce a warning.

# [IMPLEMENTATION NOTE](#IMPLEMENTATION_NOTE)

"PerlIO::scalar" only exists as a stub. One does not need to explicitly "use PerlIO::scalar".

2026-10-26 perl v5.44.0

---

Document: PerlIO::scalar(3pm) from perl 5.44.0-r3 (Chainguard OS)
Source: https://github.com/Perl/perl5.git
