ファイルパーミッションを変更する
chmod
はファイルのパーミッションを変更します。
第一引数にはパーミッションを数値モードを指定しなければいけません。
一般的には 0644
のように 8 進数の数値として指定します。
決して "0644"
のように文字列として指定しないでください。
第二引数以降はパーミッションを変更したいファイルのリストを指定します。
chmod
はパーミッション変更に成功したファイルの数を返します。
chmod 0600, './sample1.txt', './sample2.txt';
もしパーミッションの数値を文字列として保持していたとしたら、oct
を使うと良いでしょう。
my $mode = "0600";
chmod oct($mode), './sample1.txt', './sample2.txt';
ファイルにはファイルパスだけでなくファイルハンドルを指定することもできます。 ただし Windows 環境ではファイルハンドルによるパーミッションの変更がサポートされておらず、 例外が投げられますので注意してください。
open my $fh, '>', './sample.txt';
chmod 0600, $fh;
なお、ファイルハンドルを指定する場合は、ベアワードを使わないでください。 ベアワードのファイルハンドルを指定すると例外が投げられますので注意してください。
open FH, '>', './sample.txt';
chmod 0600, FH; # ファイルハンドルをベアワードで指定すると例外が投げられるので注意!