※ ChatGPTを利用し、要約された質問です(原文:$FORMの名前と変数の結合)
$FORMの名前と変数の結合
このQ&Aのポイント
PerlでフォームメールのCGIを作成する際に、変数の使い方に問題があります。
フォームから受け取ったデータを変換し、内容確認のページで表示したいです。
現在のコードでは、$mailbodyに正しい値が追加されず、空の状態で表示されます。どうすれば解決できるでしょうか。
フォームメールのCGIをPerlで作成しようとしていますが、
変数の使い方がうまくいきません。
ご指南お願いします。
フォームからのデータを受け取って変換したあとの項目に
$FORM{'name_1'} ~ $FORM{'name_60'}
$FORM{'naiyou_1'} ~ $FORM{'naiyou_60'}
とあります。
たとえば
name_1 に"名前"
name_2 に"住所"
naiyou_1に"田中"
naiyou_2に"東京都"
が入っているとして
内容確認のページに
【$FORM{'name_1'}= $FORM{'naiyou_1'}】
【$FORM{'name_2'}= $FORM{'naiyou_2'}】
= 【名前 = 田中】
【住所 = 東京都】
と表示したく、
$k_name = "name_"
$k_value = "naiyou_";
for ($i = 1 ; $i <= 60 ; $i++){
$mailbody .= "$FORM{'$k_name.$i'} = $FORM{'$k_value.$i'}\n";
}
として
$mailbodyに追加していき、
最後に纏めて
print "$mailbody\n";
としようと思っていますが、
この状態で実行テストすると$mailbodyが何も入ってなく
空の状態のまま表示されます。
$i = 1 の時
$FORM{'$k_name.$i'}は
$FORM{'name_1'}と見ていないのでしょうか?
また、
$FORM{'$k_name.$i'}を
$FORM{'name_1'}と見るようにするには
どうしたら良いのでしょうか。
どなたか知恵をお貸し頂けませんでしょうか。
わかりにくい点がありましたら、補足致しますのでご指摘ください。
よろしくお願いします。
お礼
お早い回答ありがとうございます。 ご指摘の通り、''の内部はそのまま文字列として見てしまうんでしたね・・・ 実はさんざん悩んで質問に至った訳なんですが、質問した途端に一番大事なところを記述し忘れているのに気付いたのです。 %FORM にそれぞれの値を代入する一文 例 : $FORM{$name}=$value; を忘れてしまっていたので、この質問の内容では解決できないものでした・・・(^_^;) お答えいただきましたのなんだか申し訳ございません。 しかし、上記の一文を記述していたとしても ""''の違いによる解釈の違いはあったのですから、良回答でポイントを差し上げたいと思います。 ありがとうございました。(^_^) また、いつかこのサイト内で出会える事を願っています。