---
name: "POE::Driver::SysRW"
section: "3pm"
platform: "linux"
package: "perl-poe"
version: "1.370-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/POE::Driver::SysRW"
---

# POE::Driver::SysRW(3pm)

buffered, non-blocking I/O using sysread and syswrite

## NAME

POE::Driver::SysRW - buffered, non-blocking I/O using sysread and syswrite

## SYNOPSIS

"SYNOPSIS" in POE::Driver illustrates how the interface works.  This module is merely one implementation.

## DESCRIPTION

This driver implements POE::Driver using sysread and syswrite.

## PUBLIC METHODS

POE::Driver::SysRW introduces some additional features not covered in the base interface.

### new \[BlockSize =\> OCTETS\]

**new()** creates a new buffered I/O driver that uses **sysread()** to read data from a handle and **syswrite()** to flush data to that handle.  The constructor accepts one optional named parameter, `"BlockSize"`, which indicates the maximum number of OCTETS that will be read at one time.

`"BlockSize"` is 64 kilobytes (65536 octets) by default.  Higher values may improve performance in streaming applications, but the trade-off is a lower event granularity and increased resident memory usage.

Lower `"BlockSize"` values reduce memory consumption somewhat with corresponding throughput penalties.

```
  my $driver = POE::Driver::SysRW->new;
  my $driver = POE::Driver::SysRW->new( BlockSize => $block_size );
```

Drivers are commonly instantiated within POE::Wheel constructor calls:

```
  $_[HEAP]{wheel} = POE::Wheel::ReadWrite->new(
    InputHandle => \*STDIN,
    OutputHandle => \*STDOUT,
    Driver => POE::Driver::SysRW->new(),
    Filter => POE::Filter::Line->new(),
  );
```

Applications almost always use POE::Driver::SysRW, so POE::Wheel objects almost always will create their own if no Driver is specified.

### All Other Methods

POE::Driver::SysRW documents the abstract interface documented in POE::Driver.  Please see POE::Driver for more details about the following methods:

- flush

  - get

  - get\_out\_messages\_buffered

  - put

  ## SEE ALSO

POE::Driver, POE::Wheel.

Also see the SEE ALSO section of POE, which contains a brief roadmap of POE's documentation.

## AUTHORS & COPYRIGHTS

Please see POE for more information about authors and contributors.
