- ベストアンサー
ハッシュって?
Perlで、「ハッシュ」という概念が出てきますが、 どのような意味ですか? どんなプログラムを作成する時に便利なのでしょうか? なるべく早くお答えいただいた方からポイントを差し上げます。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
上記の人の方の通りハッシュは連想配列という意味です。 で、ハッシュと配列のどちらが良いか、という質問に対しては、どちらも良いし、どちらも悪い。ということです。 ハッシュには、順番の指定が出来ない。(一番最初に呼んだデータが、一番最初に出力されない) 配列は、キーとデータを取得しにくい。ということです。 しかし、ハッシュにデータを格納して、そのハッシュを配列の中に入れてしまえば、ハッシュに順番が与えられるのです。 下記の場所で検索か、質問をしてみると良いです。ためになりますよ。
その他の回答 (4)
- kokucho81
- ベストアンサー率61% (157/255)
>私はデータベースは全て配列@で扱っているのです。 >「配列」よりも「ハッシュ」を使ったほうが便利なのは >どのような時なのでしょうか? そうですね~。はいれつでやっちまう、といってしまえば、それはそれでOKな気も・・・(というのは、PERL言語の配列は他の言語と違って、えらく柔軟性が高いと言うかなんと言うか、だいたい、型が違うものを配列にできるってどう言うこと? っていうか何の配列? とまぁ、C/C++系出身者などは思ってしまいますのですが・・・) たとえば、次みたいなときに、ちょろっと使ってみるとか。。。 %ENGINE = ( yahoo => { url => 'http://search.yahoo.co.jp/bin/search?', keyword => 'p', }, goo => { url => 'http://www.goo.ne.jp/default.asp?', keyword => 'MT', }, infoseek => { url => 'http://www.infoseek.co.jp/Titles?sv=JP&tds=0&', keyword => 'qt', }, google => { url => 'http://www.google.com/search?lr=lang_ja&', keyword => 'q', }, fresheye => { url => 'http://search.fresheye.com/?', keyword => 'kw', }, excite => { url => 'http://www.excite.co.jp/search.gw?c=japan&lk=excite_jp&', keyword => 's', }, lycos => { url => 'http://www.lycos.co.jp/cgi-bin/pursuit?cat=jp&', keyword => 'query', }, ); とかね。
お礼
たびたびすいませんです。 Perlの配列って柔軟性が高いようなんで いつもそうしてました。 いろいろなアドバイスありがとうございました。
- kokucho81
- ベストアンサー率61% (157/255)
ハッシュとは「連想配列」もしくは「セット」といわれるものです。 「連想配列」のような概念が、「既存組みこみの変数」として実現されているのは珍しいかもしれません。Perl言語の特徴がかいまみえます。 C++やJavaなどの言語でも、「組みこみ変数」ではなく、「ライブラリ」として実現されています。 この連想配列とは一般的に「データベース構築」の基礎概念となるものです。 例えば、学校などでは、「学籍番号」なるものがあり、 「何番の生徒?」と問いただせば、「鈴木太郎」などというように、わかりますよね。その逆に「鈴木太郎?」と問いただせば、「何番の生徒」ということもわかります。 このように、それぞれの「学籍番号」とそれに対応した「生徒名」、この組み合わせ(連想)が、数多くある(配列)、ことから、連想配列というのです。
お礼
ご丁寧な回答 ありがとうございます。 なかなか使いこなすのは時間がかかりそうです。 私はデータベースは全て配列@で扱っているのです。 「配列」よりも「ハッシュ」を使ったほうが便利なのは どのような時なのでしょうか? もしよろしければアドバイスください。
- N-T
- ベストアンサー率40% (15/37)
ハッシュとハッシュ関数というのは別物ではないのですか。 下はPerl&CGIに関する解説サイトです。
お礼
このホームページずっと昔、見たことがありました。 あらためて見てみるとよく分かりました。 どうもありがとうございます。
- x-game
- ベストアンサー率42% (80/189)
こんにちは. 参考URLにリンク張っておきました. また,CGIのカテゴリに書き込まれているので下のアドレスも参考になると思います(多少ハッシュについても載っています). http://www.parkcity.ne.jp/~chaichan/src/perl01.htm
お礼
なるほど。 ハッシュ関数というのもあるんですね。 参考になりましたがちょっと私のほしい答えと違っちゃいました。 またお願いします。
お礼
なるほど そういう観点で使えるんですね。 よく分かりました。