• ベストアンサー

変数名の動的な付け方?

久しぶりにPerl/CGIを使って 今、少し変わったプログラムをPerl/CGIで作成しています。 そこで、悩みの種がでてきたのでご相談させていただきます。 例 log.cgi ------------------------------------ id<>hogehoge<> pass<>hogehoge<> time<>09/01/01<> ipad<>127.0.0.1<> ... というログファイルがあるとします。 何行あるかは状況によって変わりますので指定できません。 ただ、それはforeach等で対応できるかな?と思いました。 ここで私のやりたいことなんですが。 test.cgiというメインプログラムで上記ログを開いてから 前の項「id<>hogehoge<>」で言う「id」の部分をそのまま変数名にしてやりたいのです。 ログファイルを読み込む → 一行目を読み込み $id = "hogehoge"; とする → 二行目を読み込み $pass = "hogehoge"; とする ... foreachで対応できるかなーと山勘を探って見たのですが 動的に変数を定義するようなことってできるのでしょうか? お答え頂ければ幸いです。

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

  • ベストアンサー
  • atse
  • ベストアンサー率83% (36/43)
回答No.2

$str = "id<>hogehoge<>"; ($key,$val) = split(/<>/ , $str); ${$key} = $val; print "Content-type: text/plain\n\n"; print '$id = ' . $id;

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4900/10359)
回答No.1

evalでできると思いますが、そもそも、変数名にする必要は無いのでは? 普通は、ハッシュのキーにすると思います。

関連するQ&A