NAME¶
PerlIO::via::dynamic - dynamic PerlIO layers
SYNOPSIS¶
open $fh, $fname;
$p = PerlIO::via::dynamic->new
(translate =>
sub { $_[1] =~ s/\$Filename[:\w\s\-\.\/\\]*\$/\$Filename: $fname\$/e},
untranslate =>
sub { $_[1] =~ s/\$Filename[:\w\s\-\.\/\\]*\$/\$Filename\$/});
$p->via ($fh);
binmode $fh, $p->via; # deprecated
DESCRIPTION¶
"PerlIO::via::dynamic" is used for creating dynamic PerlIO layers. It
is useful when the behavior or the layer depends on variables. You should not
use this module as via layer directly (ie :via(dynamic)).
Use the constructor to create new layers, with two arguments: translate and
untranslate. Then use "$p-"via ($fh)> to wrap the handle. Once
<$fh> is destroyed, the temporary namespace for the IO layer will be
removed.
Note that PerlIO::via::dynamic uses the scalar fields to reference to the object
representing the dynamic namespace.
OPTIONS¶
- translate
- A function that translate buffer upon write.
- untranslate
- A function that translate buffer upon read.
- use_read
- Use "READ" instead of "FILL" for the
layer. Useful when caller expect exact amount of data from read, and the
"untranslate" function might return different length.
By default "PerlIO::via::dynamic" creates line-based layer to make
"translate" implementation easier.
AUTHORS¶
Chia-liang Kao <clkao@clkao.org>
COPYRIGHT¶
Copyright 2004 by Chia-liang Kao <clkao@clkao.org>.
This program is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.
See <
http://www.perl.com/perl/misc/Artistic.html>