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.
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.