新規記事投稿 フォロー記事投稿 記事のキャンセル
From: Yasu.F <yasuf@ariake.or.jp>
Subject: Re: 文字列の置換
Date: 1997/01/20 17:12:54
Reference: mesh.program/00186

1月20日に、マーフィーさんは書きました。

>Perlでプログラムを作っているのですが
>データとして、
>http://www.xxxx.xx が来たときに、これを別の文字列(ページ名)に
>置き換えたいのです。
>そのために、データベースとなるファイルを用意して、
>そこに
>---------------------------
>http://www.xxxx.xxx/ , Hoge
>http://www.yyy.foo/~hoge/ , マーフィー
>
>----------------------------
>のようなデータを入れておき、これと照合して置換したいのですが、
>どのようにしたらいいでしょう

いくつか方法はありますが、例えば次のように書けます。

  # まず、データベースファイルを読み込んで連想配列に記憶しておく
  open(DB, 'hogehoge.dat') || die "cannot open database: $!";

  while(<DB>) {
      chop;
      ($url, $title) = split(/ , /);  # 区切りは適当に変える
      $homepage{$url} = $title;
  }

  ...

  # $urlにURLが入っているとして、タイトルを$titleに入れる
  $title = $homepage{$url} if $homepage{$url};

または、データを直接スクリプトに記述してもいいのなら、

  %title = (
      'http://www.xxxx.xxx/', 'Hoge',
      'http://www.yyy.foo/~hoge/', 'マーフィー',
  );

とすれば、前半部分を省略できます。

# ちょっと書きすぎたかな?^^;