The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

PerlIO::code - Calls a subroutine with I/O interface

VERSION

This document describes PerlIO::code version 0.03

SYNOPSIS

        use PerlIO::code; # need to say explicitly

        # make an input filter
        open my $in, '<', sub{ uc scalar <> };
        print while <$in>;

        # make an output filter
        open my $out, '>', sub{ print uc shift };
        print $out while <>;

        # it accepts an extra argument
        sub my_readline{
                my($fh) = @_;
                my $line = <$fh>;
                # ...filterling...
                return $line;
        }
        open my $fh, '<', \&my_readline, \*STDIN;

DESCRIPTION

PerlIO::code helps to make an simple I/O filter. It is easier than tie, but provides very limited functions. All it can do is to do readline() and print().

NOTES

  • For some reason, the actual layer name of PerlIO::code is :Code, not :code.

  • PerlIO::code is slower than the tie interface.

  • open my $in, '<', sub{ "foo" }; my $s = <$in>; makes an endless loop, because the internal readline routine reads $in on until reaching EOF, which is never reached.

CONFIGURATION AND ENVIRONMENT

No configuration files or environment variables.

DEPENDENCIES

Perl 5.8.1 or later, and a C compiler.

BUGS AND LIMITATIONS

No bugs have been reported.

Please report any bugs or feature requests to bug-perlio-code@rt.cpan.org, or through the web interface at http://rt.cpan.org/.

SEE ALSO

PerlIO::Util.

Tie::Handle.

PerlIO::via.

PerlIO.

AUTHOR

Goro Fuji <gfuji(at)cpan.org>.

LICENCE AND COPYRIGHT

Copyright (c) 2008, Goro Fuji <gfuji(at)cpan.org>. Some rights reserved.

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic.