呼び出すメソッドを動的に変更する
まぁ大げさな話じゃなく、単にメソッド名の部分に変数が使えるよ的な話です。
my $method = 'hoge'; $obj->$method();
で、メソッドの部分に直接文字列は指定できないんだけどスカラリファレンス経由すれば一応できる。
一時変数用意しなくていいのでナイス。
$obj->'hoge'(); # これはエラー $obj->${\q{hoge}}(); # OK!
あと、関数のリファレンスも指定できたりする。
my $code = sub { my $self = shift; my $param = shift; print $param; }; $obj->$code('hoge'); # 「hoge」と出力される # $code->($obj,'hoge'); と書くのと同じ意味。