• ベストアンサー

Perlでのファイルリスト作成

Perlで、ファイルリストを作成したいのですが、あるディレクトリにあるファイル(.htm)からファイル名、フルパス、<title>タグのタイトル部分をはきだす方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • danmarino
  • ベストアンサー率63% (26/41)
回答No.2

> 指定したディレクトリのサブディレクトリもリストの対象にするにはどうしたらよいでしょうか? opendir/readdirでは指定したディレクトリ内のファイルだけでなくサブディレクトリの名前も取得してくれます。 > (3)で、<title>と</title>の間を読み取る正規表現について、ご教授願います。 正規表現が得意でないなら使わずにすむ方法もあります(工夫次第です)。 たとえば取得したHTML全文をひとつの変数に格納し、<TITLE>と</TITLE>で順にsplitしてあげれば<TITLE>と</TITLE>の間だけ抜き出せます。タグの大文字小文字(<TITLE>と<title>)を考慮してあげる必要があります(正規表現の場合も同様ですね)。

ymmthrs
質問者

お礼

早急な回答ありがとうございます。 参考にさせてもらいます。 早速、アドバイスどおりやってみたいと思います。 ありがとうございました。

その他の回答 (2)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

再帰的になにかするのであれば File::Find とか find.pl なども使えるかも.

  • danmarino
  • ベストアンサー率63% (26/41)
回答No.1

微妙にどのようなスクリプトを書きたいのかが伝わらないのですが… (1)ディレクトリにあるファイルのリストを作成するには opendir(DIR,"ディレクトリ"); @fnames = grep(!/^\./,readdir(DIR)); close DIR; (2)ファイルのフルバスは環境変数$ENV{'DOCUMENT_URI'}で取得 ※但し、htmlファイルから見てということになります (1)でディレクトリを指定しているのならフルパスはわかっているのでは? (3)<title>タグのタイトル部分を取得するには (1)で取得したファイルのリストを使ってファイルを一つ一つオープンし、<title>と</title>の間を読み取ってあげる

ymmthrs
質問者

補足

danmarino さん また質問で申し訳ないですが、 指定したディレクトリのサブディレクトリもリストの対象にするにはどうしたらよいでしょうか? (3)で、<title>と</title>の間を読み取る正規表現について、ご教授願います。正規表現が得意ではないので、もしよろしければ、サンプルコードを教えていただければと思います。

関連するQ&A