• ベストアンサー

スカラーを違った形に変えること

クローズ型チャットを作っていて、入室時に発言色を決めるときに テキストボックス(name="scolor")に入力が無かった場合 選択メニュー(name="secolor")から値を得るっていうのを 作っています。 途中まで書いてみたんですが下記の部分 if ($scolor = "") {(この部分)} else {$scolor = &url_enc($in{'scolor'});} に何を書けばいいのかわかりません。 要は&scolorを&secolorに変えられればいいのですが。 最近プログラミングを始めたばかりなので 勉強が足りないのですが、どなたかよろしくおねがいします。

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

  • ベストアンサー
  • Dpop
  • ベストアンサー率51% (279/544)
回答No.2

Web屋です。OkWebの様なサイトを設計, 構築する仕事をしています。 ひとつ、気になる点があるのですが。 if ($scolor = "") の部分ですが、このif文を通過する瞬間に、$scolorの内容は空になってしまいます。 Perlでは、代入演算子の = と、比較演算子の ==, eq を明確に分けています。 いくらif文であっても、 if ($scolor = "") は、$scolorに空文字列を代入。その後その式を評価する。 と言う意味になってしまいます。 また、比較演算子には、数値用と文字用の使い分けがあります。 ==は数値用の比較演算子で、文字用はeqと書きます。 $scolor = &url_enc($in{'scolor'}); if ($scolor eq "") { $scolor = &url_enc($in{'secolor'}); } だと思います。また、この程度の条件式の場合、?: を使った方がスマートに記述できます。 $scolor = &url_enc(($in{'scolor'} eq "") ? $in{'secolor'} : $in{'scolor'}); でも良いかな。なんて思います。 url_encの仕様が分らないので、まとめて良いかどうか、不明ですけど。

その他の回答 (1)

  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.1

よくわからないのですが、 if ($scolor = "") {$scolor = &url_enc($in{'secolor'});} else {$scolor = &url_enc($in{'scolor'});} ということでは? 渡していないデータを取るということ? それはできないです。 hiddenで渡しておくとか、Perlに埋め込みとかしていればいいのではないでしょうか?

関連するQ&A

専門家に質問してみよう