「すぐわかるPerl」 8.2 ファイル名グロブ(glob)
シェルのファイル名パターンを使って、ファイルの一覧をゲットする機能。
・・・えっと、「ファイルの一覧をゲット」、これはわかる。
でもシェルの「ファイル名パターンを使って」ここがわからん。
まぁいいや。
先に進む。
書き方1:<ファイル名パターン>
書き方2:glob(ファイル名パターン)
アンクルブラケット<>をつかう書き方1だと、特定のファイルを1行読み込む「<ファイルハンドル>」という命令と混同しがちになるので、ここでは書き方2の使った方法を使う。
スカラーコンテキストでは、globはファイル名パターンにマッチするファイルのファイル名を1個ずつ返し、全ファイルを紹介したらundefを返す。
(スカラー:scaller値を一つ持つもの 対義語は配列array 105p)
次のプログラムは「*.html」というファイル名パターンにマッチするファイルのリストを表示する。
#listdir -- ファイル名のリスト表示
while ($file = glob("*.html")){
print "$file\n";
}
リストコンテキストでは、globはパターンにマッチするファイルの全ファイル名を一気に返す。
↓のプログラムは上のプログラムと同じ。
#listdir -- ファイル名のリスト表示
@file = glob("*.html");
foreach (@files){
print "$_\n";
}
@fileの配列がなくなるまで*.htmlのリストを表示する、と。
「ファイル名パターンを使って」ってのは、*.htmlとかのことだな。okok。
| 固定リンク
「Perl」カテゴリの記事
- 「すぐわかるPerl」 8.10 ディレクトリのリカーシブ処理(その2)(2009.02.24)
- 「すぐわかるPerl」 8.10 ディレクトリのリカーシブ処理(その1)(2009.02.23)
- 「すぐわかるPerl」 7.6 マッチした文字列と、その前後の文字列を扱う変数(2008.06.17)
- 「すぐわかるPerl」 8.9 コマンドの入出力に入出力を切り替える(2008.11.12)
- 「すぐわかるPerl」 8.8 標準入出力以外のファイルの制御(2008.10.08)









コメント