Go to the first, previous, next, last section, table of contents.


二項演算子の呼び出し方

%OVERLOAD の value の関数は、3 つ (唯一特別な場合があって、その時 は4つ(「See section 最後の楽園,」の節を参照))の引数で呼び出されます。対応する 演算子が、 二項演算子であれば、最初の 2 つの引数は、その演算子の 2 つの 引数です。しかしながら、通常のオブジェクトメソッドの呼び出し法の規則によっ て、最初の引数は、常にそのパッケージのオブジェクトでなければなりませんの で、7+$a のような場合には、引数の順序の入れ替えが行なわれます。こ れは、加法のメソッドのインプリメンテーションについては、おそらく問題には ならないものですが、減法のメソッドにとっては、引数を入替えるか否かは、非 常に重大な問題です。サブルーティン側では、この引数の入れ替えについての情 報を3つめの引数を調べることで、確かめることができます。この引数は、3種類 の値をとります:

引数の順序は、現在の演算子でのものと同じである。
引数は、逆になっている。
undef
現在の演算子は、( $a+=7 のような) 代入形式のものであるが、普通の 関数が、代わりに呼ばれる。この付加的な情報は、何らかの最適化を行なうとき に、使用することができる。


Go to the first, previous, next, last section, table of contents.

検索式: