manpagez: man pages & more
man PerlIO::via::dynamic(3)
Home | html | info | man
dynamic(3)            User Contributed Perl Documentation           dynamic(3)




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>



perl v5.10.0                      2008-05-31                        dynamic(3)

Mac OS X 10.6 - Generated Thu Sep 17 20:14:37 CDT 2009
© manpagez.com 2000-2025
Individual documents may contain additional copyright information.