Perlにおいて、クラスの正体はモジュールである。
Perlでオブジェクト指向プログラミング - Perlプログラミング入門ゼミ - Perlでテキスト処理・Linuxサーバー管理・Webシステム開発
ただし、オブジェクトを作る方法が特殊で、オブジェクトの正体はリファレンス(だいたいハッシュリファレンス)であり、組み込み関数blessを使って、オブジェクト(=リファレンス)とクラス名を紐づける作業が必要になる。
method1はそのまま出力、method2は第1引数を出力、method3は第2引数まで出力。
無名ハッシュリファレンス$objを用意して、blessに$objとCustomClassを渡す。
blessのこの仕組み、これはもうこういうものとしか言いようがない。
この謎の呪文の後に、アロー演算子でメソッドを呼び出す。
method2でも引数は渡さず、method3で1つだけ渡す。
[bg1@dti-vps-srv93 class]$ vi CustomClass.pm [bg1@dti-vps-srv93 class]$ vi class.pl [bg1@dti-vps-srv93 class]$ perl class.pl method1 method2 $arg1 = CustomClass=HASH(0xe3ea68) method3 $arg1 = CustomClass=HASH(0xe3ea68) $arg2 = ABC [bg1@dti-vps-srv93 class]$
ちゃんと呼べてる。
そして実は、第1引数は、オブジェクトそのものが渡されるので、出力ではこういう形になっている。
第2引数以降に、独自の引数"ABC"が渡される。
Sample/perl/class/class/src/class at master · bg1bgst333/Sample · GitHub