PerlIO::Util::JA(3)

NAME
PerlIO::Util::JA - PerlIOに関する汎用ユーティリティ集

VERSION
This document describes PerlIO::Util version 0.72

SYNOPSIS
    use PerlIO::Util;

    # utility layers

    open $in, '+<:flock', $file; # with flock(IN, LOCK_EX)

    open $in, '+<:creat :excl', $file; # with O_CREAT | O_EXCL

    open $out, '>:tee', $file, \$scalar, \*STDERR;
    print $out "foo"; # print to $file, $scalar and *STDERR

    # utility routines

    $in = PerlIO::Util->open('<', $file); # it dies on fail

    *STDOUT->push_layer(scalar => \$scalar); # it dies on fail
    print "foo";

    print *STDOUT->pop_layer(); # => scalar
    print $scalar; # => foo

DESCRIPTION
"PerlIO::Util"はPerlIOに関するユーティリティレイヤとユーティリティメソッドを 提供するモジュールである。

ユーティリティレイヤは"PerlIO::Util"の一部だが，使用に際して"use PerlIO::Util" と書く必要はない。PerlIOは必要に応じてレイヤを自動的にロードする。

UTILITY LAYERS

  :flock
flock()に対する簡易なインターフェイスを提供する。

See PerlIO::flock.

  :creat
"Fcntl"を用いずに，O_CREATを使用する。

See PerlIO::creat.

  :excl
"Fcntl"を用いずに，O_EXCLを使用する。

See PerlIO::excl.

  :tee
複数のファイルやストリームに同時に出力する。

See PerlIO::tee.

  :dir
PerlIOインターフェイスでディレクトリを読む。

ディレクトリハンドルをファイルハンドルとして扱うため， ":encodeing"などのPerlIOレイヤを適用できる。

See PerlIO::dir.

  :reverse
ファイルを逆順に読む。

一旦全て読み込んでからreverse()するより高速だが， コンソールやパイプなどのseek()できないストリームは扱えない。

See PerlIO::reverse.

  :fse
ファイルシステムエンコーディングを扱う。

与えられたファイル名がPerlのユニコード文字列であるとき， "Encode"モジュールを使ってファイルシステムのエンコーディングに変換する。 なお，Windows以外では自動的にファイルシステムのエンコーディングを取得するが， それ以外の環境では環境変数PERLIO_FSEで指定するか，"use PerlIO::fse"の引数としてエンコーディングを指定する必要がある。

なお，このレイヤーは0.70で独立したモジュールとなった。

See PerlIO::fse.

UTILITY METHODS

  PerlIO::Util->open(mode, args)
ビルトイン関数のopen()を呼び出し，"IO::Handle"オブジェクトを返す。 open()に失敗すると致命的エラーとなる。

Perlのopen()と異なり（また"IO::File"のnew()とも異なり），modeは 常に必須である。つまり，基本的には"IO::File"のnew()の代替として使用できるが，常に3-arg openを強要し，失敗すると致命的エラーとなる点で"IO::File"のnew()と異なる。

  PerlIO::Util->known_layers( )
定義済みのPerlIOレイヤの名前を返す。

  FILEHANDLE->get_layers( )
FILEHANDLEのPerlIOレイヤの名前を返す。 これはPerlIO::get_layers(FILEHANDLE)の別名である。

See "Querying the layers of filehandles" in PerlIO.

  FILEHANDLE->push_layer(layer [ => arg])
"binmode(FILEHANDLE, ':layer(arg)')"とほぼ同じだが，argはどんな データ型でもよい。たとえば，":scalar"に対してスカラリファレンスを与えることができる。

このメソッドは失敗すると致命的エラーとなる。成功したときはFILEHANDLEを返す。

  FILEHANDLE->pop_layer( )
"binmode(FILEHANDLE, ':pop')"に等しい。これはFILEHANDLEの最上部の レイヤを取り除く。なお，":utf8"や":flock"のようなダミーレイヤを取り除くことはできない。

このメソッドは実際に取り除いたレイヤの名前を返す。

DEPENDENCIES
Perl 5.8.1 or later, and a C compiler.

BUGS
No bugs have been reported.

Please report any bugs or feature requests to <gfuji (at) cpan.org>, or through the web interface at <http://rt.cpan.org/>.

SEE ALSO
PerlIO::flock, PerlIO::creat, PerlIO::excl, PerlIO::tee, PerlIO::dir, PerlIO::reverse, PerlIO::fse.

PerlIO for push_layer() and pop_layer().

perliol for implementation details.

"open" in perlfunc.

perlopentut.

AUTHOR
Goro Fuji (藤 吾郎) <gfuji(at)cpan.org>.

LICENSE AND COPYRIGHT
Copyright (c) 2008-2010, 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.