- ベストアンサー
変数名をフォームの値から設定したい
フォーム上でアンケートを集計するプログラムを書いています。 年代、性別、回答という項目があり、各回答につき、年代と性別別の表を出力するものです。 IF文でやれば出来るのですが、プログラムを極力短くするために、フォームの回答から一定の変数を書き出して計算させる方法を考えています。 例えば30代の男で1番に回答があった時には、データは"age=30&sex=man&ans=1"という具合で渡されてくるので、これを並べて変数名として扱い、変数"$30man1"に1をプラスするというようなことを行いたいのですが、試行錯誤してもうまくいきませんでした。 文字列を並べた値を変数名として認識させるところがダメなようです。 可能であれば、方法をご存じの方、お教えいただければ幸いです。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
文字列を変数名として使うには、シンボリックリファレンスと言う機能を使います。 ${"文字列"} とすれば、この「文字列」を変数名として ${"文字列"} = 10; のように使うことができます。 ところが ${"30man1"} は、変数名が数字で始まることになってしまうので、必ず文字になる値を先頭に持ってくるか、ダミーで1文字入れるかしないとだめです。 ところで、これはPerlの話でよいのでしょうか? CGIを作っているのだとしても、言語の問題で質問するなら、そちらのカテゴリで質問すべきですよ?
その他の回答 (1)
- millionwalker
- ベストアンサー率46% (22/47)
回答No.2
連想配列でいきましょう。