« 「すぐわかるPerl」 8.1 ディレクトリ内のファイルを一気に処理する | トップページ | 「すぐわかるPerl」 8.3 systemコマンド »

2008年9月 3日 (水)

「すぐわかる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」 8.1 ディレクトリ内のファイルを一気に処理する | トップページ | 「すぐわかるPerl」 8.3 systemコマンド »

Perl」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/214806/42365563

この記事へのトラックバック一覧です: 「すぐわかるPerl」 8.2 ファイル名グロブ(glob):

« 「すぐわかるPerl」 8.1 ディレクトリ内のファイルを一気に処理する | トップページ | 「すぐわかるPerl」 8.3 systemコマンド »