• 締切済み

if文を簡単に

CGIを改造中です。 オプションメニューを設置しました。 ただ、検索などに利用したかったので、名前と値を別のものにしています。(犬=1,猫=2のように) データ入力画面の方はリストを入力したのですが、名前が50を超えるのでリスト表示画面や検索結果表示画面でif文を大量に書くのは面倒です。 (if($name eq1){print "犬\n";elsif~) どうにかしてこれを簡潔にすることは出来ないものでしょうか?

みんなの回答

  • geso775
  • ベストアンサー率29% (15/51)
回答No.4

#3様、ハッシュ=連想配列ですよ。。 とハッシュさえ使いこなせていない私が言ってみる(汗)

参考URL:
http://www.kent-web.com/perl/chap4.html
  • eberbach
  • ベストアンサー率14% (18/123)
回答No.3

No2の回答のハッシュ形式云々というのが連想配列を使った方法。(No2の回答参照)

  • omni2
  • ベストアンサー率53% (33/62)
回答No.2

<OPTION value="0"selected>犬</OPTION> <OPTION value="1">猫</OPTION> <OPTION value="2">猿</OPTION> <OPTION value="3">鳥</OPTION> <OPTION value="4">牛</OPTION> の場合、 my @array = ("犬","猫","猿","鳥","牛"); と配列を用意しておいて、 print $array[$name];とすればいいのではないでしょうか? または、ハッシュ形式にしておいて、 my %hash = ( 0 => '犬', 1 => '猫', 2 => '猿', 3 => '鳥', 4 => '牛', ); print $hash{$name}; とすればいいのではないでしょうか?

  • eberbach
  • ベストアンサー率14% (18/123)
回答No.1

名前と値のペアを全部連想配列に入れておくというのはどうだろうか。

master-3rd
質問者

補足

すみません。その方法の詳細を教えてもらえないでしょうか… どのようにしたら良いかさっぱりです。

関連するQ&A

専門家に質問してみよう