PerlIO::scalar - in-memory IO, scalar IO
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;
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.
PerlIO::scalar
only exists to use XSLoader to load C code that provides support for treating a scalar as an "in memory" file. One does not need to explicitly use PerlIO::scalar
.