ANNOUNCE: New module Sys::PortIO 0.1 uploaded to CPAN

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!


I've uploaded a new module Sys::PortIO 0.1 to CPAN. This module
provides Perl access via XS glue to the OS-dependent routines necessary
to do arbitrary port I/O; on Unix-like systems, this is generally the
inb() and outb() functions, as well as functions to obtain permission
to use them. These functions are useful for doing things like
controlling arbitrary interfaces to parallel, serial, or joystick

Here is the text of the README that ships with this module:

This is Sys::PortIO, a Perl interface to direct port I/O functions (on
Unix-like systems, inb() and outb() and friends). You can install it in
the typical CPAN module manner:

    % perl Makefile.PL
    % make
    % make test
    # make install

You can find the latest distribution at the following URL:

You can also find it at your friendly neighborhood CPAN: /

Appended below is are the Changes and POD documentation from

Contact Andrew Ho ( with comments or bug reports.


Revision history for Perl extension Sys::PortIO.

0.1 - March 4, 2005

  * Original version, created by Andrew Ho (,



    Sys::PortIO - perform direct port I/O from Perl


        use Sys::PortIO;

        write_byte($portnum, $value);
        $value = read_byte($portnum);


    This module provides a Perl interface to the low-level port I/O
    operations provided by Linux, FreeBSD, or OpenBSD. Among other
    things, this is useful for writing Perl scripts that interface
    with parallel, serial, or joystick ports.


    On some systems (for example, Linux), doing a port read or write
    on an unopened port will cause a segmentation fault.


    Support optional range argument to "port_open()".
    Set $! on errors, instead of dying (sometimes with a segfault).
    Alternately, automatically open ports as needed.


    Linux I/O port mini-HOWTO:

    On Linux or other glibc systems, see ioperm(2), inb(2), and
    outb(2). FreeBSD uses /dev/io for port access. On OpenBSD and
    NetBSD, see i386_iopl(2) and sysarch(2).



    Copyright (C) 2005 by Andrew Ho.

    This library is free software; you can redistribute it and/or
    modify it under the same terms as Perl itself, either Perl
    version 5.6.0 or, at your option, any later version of Perl 5
    you may have available.

Please let me know if there are any questions or comments. Thanks!



'Twas brillig, and the slithy toves                          Andrew Ho
 Did gyre and gimble in the wabe.         
 All mimsy were the borogoves,
 And the mome raths outgrabe.  /

Site Timeline