=encoding utf-8 =head1 NAME PerlIO::Util::JA - PerlIOに関する汎用ユーティリティ集 =head1 VERSION This document describes PerlIO::Util version 0.72 =for test_synopsis my($in, $out, $file, $scalar); =head1 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 =head1 DESCRIPTION CはPerlIOに関するユーティリティレイヤとユーティリティメソッドを 提供するモジュールである。 ユーティリティレイヤはCの一部だが,使用に際してC と書く必要はない。PerlIOは必要に応じてレイヤを自動的にロードする。 =head1 UTILITY LAYERS =head2 :flock Cに対する簡易なインターフェイスを提供する。 See L. =head2 :creat Cを用いずに,O_CREATを使用する。 See L. =head2 :excl Cを用いずに,O_EXCLを使用する。 See L. =head2 :tee 複数のファイルやストリームに同時に出力する。 See L. =head2 :dir PerlIOインターフェイスでディレクトリを読む。 ディレクトリハンドルをファイルハンドルとして扱うため, C<:encodeing>などのPerlIOレイヤを適用できる。 See L. =head2 :reverse ファイルを逆順に読む。 一旦全て読み込んでからCするより高速だが, コンソールやパイプなどのCできないストリームは扱えない。 See L. =head2 :fse ファイルシステムエンコーディングを扱う。 与えられたファイル名がPerlのユニコード文字列であるとき, Cモジュールを使ってファイルシステムのエンコーディングに変換する。 なお,Windows以外では自動的にファイルシステムのエンコーディングを取得するが, それ以外の環境では環境変数PERLIO_FSEで指定するか,Cの引数としてエンコーディングを指定する必要がある。 なお,このレイヤーは0.70で独立したモジュールとなった。 See L. =head1 UTILITY METHODS =head2 PerlIO::Util-Eopen(I, I) ビルトイン関数のCを呼び出し,Cオブジェクトを返す。 Cに失敗すると致命的エラーとなる。 PerlのCと異なり(またCのCとも異なり),Iは 常に必須である。つまり,基本的にはCのCの代替として使用できるが,常にB<3-arg open>を強要し,失敗すると致命的エラーとなる点でCのCと異なる。 =head2 PerlIO::Util->known_layers( ) 定義済みのPerlIOレイヤの名前を返す。 =head2 I-Eget_layers( ) IのPerlIOレイヤの名前を返す。 これはI)>の別名である。 See L. =head2 I-Epush_layer(I [ => I]) Cとほぼ同じだが,Iはどんな データ型でもよい。たとえば,C<:scalar>に対してスカラリファレンスを与えることができる。 このメソッドは失敗すると致命的エラーとなる。成功したときはIを返す。 =head2 I-Epop_layer( ) Cに等しい。これはIの最上部の レイヤを取り除く。なお,C<:utf8>やC<:flock>のようなダミーレイヤを取り除くことはできない。 このメソッドは実際に取り除いたレイヤの名前を返す。 =head1 DEPENDENCIES Perl 5.8.1 or later, and a C compiler. =head1 BUGS No bugs have been reported. Please report any bugs or feature requests to Egfuji (at) cpan.orgE, or through the web interface at L. =head1 SEE ALSO L, L, L, L, L, L, L. L for C and C. L for implementation details. L. L. =head1 AUTHOR Goro Fuji (藤 吾郎) Egfuji(at)cpan.orgE. =head1 LICENSE AND COPYRIGHT Copyright (c) 2008-2010, Goro Fuji Egfuji(at)cpan.orgE. Some rights reserved. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut