togatttiのエンジニアメモ

過度な期待はしないでください.

Packageでメソッド呼び出す時の第一引数について

下記のようなコードで、メソッドを呼び出そうとするとき。

use strict;
use warnings;
package Hoge;

sub print_class {
my $class = shift;
print $class;
}

1;

アロー演算子だと第一引数にはPackage名のHogeが渡される。

Hoge->print_class;

::だと明示的に指定しないと、引数が無くてエラーになる。

Hoge::print_class('Hoge');