

|
|
HOME >> アルファベットで関数を検索 >> open
open [ファイルをオープンし、ファイルハンドルに結びつける]
[関数の使い方・書式]
○ = open ☆ [, ★]
☆:ファイルハンドル。
・・・ 原則すべて大文字。ファイルハンドル名を返す式でもよい。
★:式。
・・・ 処理モードとファイル名またはプログラム名の組み合わせ。
○:成功時は真(UNIXの場合、パイプを使用した場合は子プロセスのプロセスID)、 失敗時は偽(未定義値)を返す。
[関数の機能]
★で指定したファイルをオープンし、ファイルハンドル☆に結び付けます。
open は失敗してもエラーにはなりません。そのため、必ず戻り値を判定するようにしなければなりません。
[書式の例]
1.open FH, "$filename";
# 入力用
2.open FH, "<$filename";
# 入力用
3.open FH, "+<$filename";
# 入出力共用
4.open FH, "+>$filename";
# 入出力共用(上書きモード)
5.open FH, ">$filename";
# 出力用(上書きモード)
6.open FH, ">>$filename";
# 出力用(追加モード)
7.open FH, "-";
# STDIN のオープン
8.open FH, ">-";
# STDOUT のオープン
9.open FH, "|$program";
# $program の出力をパイプに書き出し、program に渡す。
10.open FH, "$program |";
# program の出力をパイプ経由で読みこむ
11.open FH, ">&STDOUT";
# STDOUT を SAVEOUT に複製
12.open FH, ">&STDERR";
# STDERR を SAVEERR に複製
13.open FH, "<&=$fd";
# ファイル記述子 $fd のエイリアス化
14.open FH, file;
# $file の値をファイル名として入力用にオープン
サンプルソース
● テキストファイルを簡易コピーする
open IN, "input" or die "open IN 失敗: $!";
open OUT, "output" or die "open OUT 失敗: $!";
while( $input = ) {
print OUT $input;
}
● メール送信する
$address = "hoge\@hoge.ne.jp";
$mail = '/usr/sbin/sendmail';
open MAIL, "| nkf | $mail -t $address" or die "メール送信処理失敗\n";
print MAIL "Subject: Thank you for your visit\n\n";
print MSIL "本文です。\n\n";
close MAIL;
|