メソッド・関数の存在を調べる。

http://d.hatena.ne.jp/smeghead/20070129/1170068584
動的に関数やメソッドを実行する時に、
実行するメソッドの存在をチェックする方法。

# パラメータからメソッド・関数名を受け取る
my $m = $q->param('m');

# $mメソッドがなければ$self->errorを実行
$self->error unless $self->can( $m );

# 存在していれば実行
$self->$m;

パッケージ名->can( メソッド名 );
__PACKAGE__->can( $m );
ClassName->can( $m );

canメソッドはUNIVERSALクラスが提供している。