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::Filenew()とも異なり),modeは 常に必須である。つまり,基本的にはIO::Filenew()の代替として使用できるが,常に3-arg openを強要し,失敗すると致命的エラーとなる点でIO::Filenew()と異なる。

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.