2016-09-28 23 views

答えて

2

それがクラスメソッドだ場合は、下記のようにそれを呼び出すことができます。

use ClassA; 
ClassA->method1(); 

例:

ClassA.pm

package ClassA; 

sub welcome_message{ 
    my $class = shift; 
    my $name = shift; 
    print "Hello $name"; 
} 

1; 

test.pl

#!/usr/bin/perl 
use strict; 
use warnings; 
use ClassA; 
my $name = 'John Doe'; 
ClassA->welcome_message($name); 

perlootutをご覧ください。

+2

に私の1000番目の答えだったことに気づきました、のような別のメソッドを呼び出します。 ' - >'構文を使用し、代わりに 'ClassA-> method1'と言う方が良いでしょう。 – simbabque

+1

いくつかの提案。まず、オブジェクトメソッドでは '$ self'だけを使用します。クラスメソッドの場合、私はinvocantを格納する変数の名前として '$ class'を使います。第2に、他のパラメータを処理する前に 'shift 'を使ってinvocantを取得したい(' my $ self = shift')。これには2つの利点があります - まず、最初の引数が何らかの方法で特別であることを示し、2番目に、ユーザーがメソッドに渡した実際の引数を含む '@ _ 'を残します。 YMMV :-) –

2

基本的に2種類の方法があります。最も一般的な型はオブジェクトメソッドです。オブジェクトメソッド(つまり、クラスのインスタンス)に対して呼び出されるメソッドです。大部分の場合、オブジェクトなしでオブジェクトメソッドを呼び出すことは、オブジェクトからデータを読み込むか、オブジェクトにデータを書き戻す必要があるため、完全に無意味になります。

しかし、クラスメソッド - クラスで呼び出されるメソッドもあります。オブジェクトコンストラクタ(通常はnew()と呼ばれます)はおそらく、よく知られているクラスメソッドの例です。クラスメソッドを呼び出すには、クラス名、矢印演算子、およびメソッドの名前を使用します。

Some::Class->some_method; 

また、メソッドにパラメータを渡すこともできます。

Some::Class->some_method($some, $parameters); 

これは、すべてのかなり曖昧ですが、あなたがやっていると、あなたがなしとオブジェクトメソッドを呼び出したい理由、それはもはや助けとなることは不可能だかについて、より多くを知らず。

更新:は、私はちょうどこれはこれは、 `$のself`(または` $のclass`)で何かをしたいかもしれませんSO :-)

関連する問題