質問: perl 矢印演算子 -> の使い方 -> という矢印演算子が勉強しているスクリプト中に出てきて書籍などで調べたのですが、 よく分かりませんでした。 連想配列で便利な面がある?のでしょうか? 何かを省略できる書き方ということでしょうか。 my $cgi=cgi->new; if($anct>$articleperpage){ if($cgi -> param('offset')){ $offset=$cgi->param('offset'); という具合にまだまだ続きますが、 矢印演算子が使われています。 アドバイス宜しくお願い致します。
回答: こんばんは、shevy さん。いつぞやは混乱させてしまったみたいで、ごめんなさい。 ハッシュ(連想配列)の解説はもっと丁寧に正確に行うべきでした。m(__)m さて、この矢印は perl5 で導入された「オブジェクト指向」機能を使って オブジェクトとメソッドを関連づける表記です。 >my $cgi=cgi->new; new というメソッドで cgi クラスのオブジェクト(インスタンス)を 生成して局所変数 $cgi に格納します。 この new のことはコンストラクタ(オブジェクトを構築するものの意)といいます。 >$cgi->param('offset'); $cgi に格納されたオブジェクトに対して param メソッドで 'offset' パラメータの値を取り出します。 こう書くと難しく感じるでしょうが、オブジェクトは自分自身いろいろな属性を持っていて、 ただの変数よりずっとお利口さんなのです。オブジェクトは自分のやるべきことを 知っていて、メソッドという「メッセージ」を受け取ることで そのメッセージに応じた振る舞いをすることができます。 さっきの「$cgi->param('offset')」で言えば、こちらが $cgi の中のオブジェクトに対して「おい、'offset' パラメータの値は何だっけ」 と呼びかけると、オブジェクトはそのメッセージに応えて値を返すということです。 詳しくは参考 url をご覧ください。 参考url:http://www.pure.ne.jp/~learner/program/perl_oo.html,http://www3.vis.ne.jp/~asaki/java/wiki/wiki.cgi?page=cgi.pm%a4%f2%bb