「初めてのPerl」 第十三章 - 1
第十三章から。
第十三章 ディレクトリ操作
内容
用語集
用語 | 説明 |
---|---|
グロブ | パターンにマッチしたファイル名を取得出来る |
ファイルハンドル | ファイルの入出力するためのPerlで用いられるファイルの概念 |
ディレクトリハンドル | ファイルハンドルのディレクトリに置き換えたような物。扱うのはファイル名 |
Point
ディレクトリツリーを移動したい
# プログラム中の作業ディレクトリを移動する chdir '/etc' or die "cannot chdir to /etc: $!"; # Unixコマンドのcdみたいなもの # エラーが発生した場合、$!に値がセットされる
パターンにマッチしたファイル名を取得したい
# ファイル名をパターンマッチで取得したい時はグロブを使う my @pm_files = glob '*.pm'; # これで作業ディレクトリにある*.pmにマッチするファイル名のリストが返ってくる # こういう表現も出来る my @pm_files = <*.pm>; # また、ディレクトリハンドルを使っても同じようなことが出来る my @pm_files; opendir my $dh, '/etc' or die "Cannot open /etc: $!"; foreach $name (readdir $dh) { if ($name =~ /\.pm$/) { push @pm_files, $name; } }
ファイルを削除したい
# unlinkにリストを渡すとそのファイルを削除出来る unlink qw/hoge fuga piyo/; # 削除に成功したら1、失敗したら0を返す # どのファイルの削除に成功したのかを判断するにはループして一つずつ削除すると良い foreach my $file (qw/hoge fuga piyo/) { unlink $file or warn "failed on $file: $!\n"; }
ファイル名を変更したい
# renameでファイル名を変更出来る rename 'hoge', 'fuga'; # 分かりやすいように=>を使うと良い rename 'hoge' => 'fuga';
次回は
次回は第十三章の続きから。