KAIHATSUGIKEN GROUP

PERL PROGRAMMING LANGUAGE



************************************************************************************
27 UNIXの機能
*****************
ユニックスでのファイルオープン
open(F,"/etc/passwd");

openにはファイルハンドルとファイルのパス名を指定します。
Fがファイルハンドル"etc/passwd"がファイルのパスです。


openのパス名には先頭に記号をつけて入力なのか出力なのかを指定します。

例えば、
open(F,"<file")
の様にします。

読み込み 	"read"の"r"
書き込み 	"wright"の"w"
実行 		"excute"の"e"

となります。

このモードは
open(F,r+<file")
open(F,w+<file")

となります。

ファイルオープンを失敗したら・・・
なんて事を試すのに使われるプログラムは

open(F,"$filename")or die("can't open: $filename\n");
です。
*********************
入力

ファイルから入力する場合はファイルから1行ずつ入力してそれをプリントする
プログラムを書きます。

$filename=/etc/passwd";
open(IN,"$filename")or die("can't open: $filename\n");
while(<IN>){
	print;
	}
close(IN);

ファイルハンドルを不等号で囲んで、<F>とすると、そのファイルハンドルから
1行入力します。
whileの条件の部分に<F>だけを書くと自動的に$_に代入されるのでそれをprintします。

***********************
出力

ファイルに出力するには、printやprintfでファイルハンドルを指定します。
例えば0から9までをファイルに書き出すプログラムは 次のようになります。

$filename="count";
open(OUT,">$filename")or die("can't open: $filename\n");
	print($i=0; $i<10; $i++){
		print OUT "$i\n";
}

openでファイルのパス名の前に「>」をつけて書き込み用としてオープンします。
そしてprint でファイルハンドルOUTを指定します。

OUTの後ろにはカンマをつけないことに注意して下さい。

*************************
クローズ

最後はクローズです。
クローズを書かなくともプログラムが終了するときに自動的にクローズしたりもしますが、
まあ、開けたものはしめるのが作法というものです。

**************************
ファイルの属性を調べる

$filenameが読めるかどうかを調べるには

if(-r $filename){
	print"$filename is readable.\n";
}

となります。

-r や
-w や
-e などのように指定します。

そのほかに

chmod	ファイルのモード(パーミッション)を変更する
chown	ファイルの所有者、グループを変更する。
utime	ファイルの最後にアクセスした時刻、最後に修正した時刻を変更する。

ファイル操作として

rename	ファイル名を変更する
unlink	ファイルを消す
link	リンクする
symlink	シンボリックリンクを作る
truncateファイルを指定した大きさに切りつめる

****************************************