dポイントプレゼントキャンペーン実施中!

久しぶりに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で対応できるかなーと山勘を探って見たのですが
動的に変数を定義するようなことってできるのでしょうか?

お答え頂ければ幸いです。

A 回答 (2件)

$str = "id<>hogehoge<>";


($key,$val) = split(/<>/ , $str);
${$key} = $val;

print "Content-type: text/plain\n\n";
print '$id = ' . $id;
    • good
    • 0

evalでできると思いますが、そもそも、変数名にする必要は無いのでは?


普通は、ハッシュのキーにすると思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!