入出力
-
VOID close HANDLE
-
ファイルハンドルHANDLEをクローズします。
-
VOID listhandle VOID
-
現在オープンされているファイルハンドルのstatusを表示します。
-
BOOL isfileexist STRING
-
STRINGからなるファイルが存在するか結果を返します。
-
VOID open (HANDLE, STRING)
-
STRINGからなるファイル名をオープンし、ファイルハンドルHANDLEに結び付けます。HANDLEが既に存在する場合や、有効なハンドルが得られなかった場合、スクリプトは中断します。
-
VOID print HANDLE STRING
-
HANDLEにSTRINGを出力します。HANDLEが省略された場合、CUIMENUが立ち上がっていればメッセージエリアに、立ち上がっていなければSTDOUTに出力します。
-
VOID print HANDLE ARRAY
-
HANDLEにARRAYの各要素を特殊変数$,で区切って出力します。$,のデフォルト値は""です。HANDLEが省略された場合、メッセージエリアに出力します。
-
VOID printf HANDLE (FORMAT, STRING1, STRING2, ...)
-
HANDLEにFORMATでフォーマットされたSTRING1、STRING2、...を出力します。HANDLEが省略された場合、CUIMENUが立ち上がっていればメッセージエリアに、立ち上がっていなければSTDOUTに出力します。FORMATは、CやPerlの場合と同様ですが、ポインタを修飾する修飾子(F,
N)やポインタ型(p)、%n等は用いることはできません。
-
BOOL readline STRING
STRINGをプロンプトとしてテキスト入力を促します。テキスト編集結果は$_RETに返されます。カーソル移動はBashと同様なキーアサインでテキスト編集ができます。また、ファイル名の補完やヒストリ機能もあります。
特殊なファイルハンドル
通常ファイルハンドルは、"open"関数によって定義されますが、以下のハンドルはデフォルトで定義されています。これらのユーザ側でハンドルはクローズできません。
STDIN 標準入力
STDOUT 標準出力
STDERR 標準エラー出力
ハンドルを用いた入出力の例
例1:「ファイル"test"を読み込みモードでオープンし、ファイルハンドル"F"に結び付けます。
この後1行ずつファイルを読み込み、メッセージエリアに表示します。」
open(F, '<test');
while ($a = <F>)
{
print $a;
}
close(F);
例2:「ファイル"test"を読み込みモードでオープンし、ファイルハンドル"F"に結び付けます。この後1行ずつファイルを読み込み、行番号を付けてメッセージエリアに表示します。」
$index = 0;
open(F, '<test');
while ($a = <F>)
{
$index++;
print "$index : $a";
}
close(F);
例3:「ファイル"test"を読み込みモードでオープンし、ファイルハンドル"F"に結び付けます。この後ファイル内容を配列変数@aに一気に読み込みます。この後メッセージエリアにファイル内容を表示します。」
open(F, '<test');
@a = <F>
close(F);
print @a;
例4:「ファイル"test"を書き込みモードでオープンし、ファイルハンドル"F"に結び付けます。この後配列変数@aの内容を書き込みます。但し、@aの各要素毎に改行するとします。そこでprint
@aの配列の各要素の区切りを定義する特殊変数$,の値を'\n'としておきます。」
$, = '\n';
open(F, '>test');
print F @a;
close(F);
例5:「tpv2psへのパイプをオープンし、グラフイメージをpostscript形式に変換してから、ファイル"test.ps"に書き込みます。」
open(F, '|tpv2ps > test');
$graph->paintall(F);
close(F);
例6:「lsの出力を配列$aに読み込みます。」
open(F, 'ls |');
$a = <F>
close(F);