Perl5 でハイフンを含む関数名を定義した気分になる方法
Perl5 ではハイフンを含む関数名が定義できません。しかし、どうにかして定義することはできないものでしょうか。 はい。定義するだけならがんばればできます。
package Foo;
sub new { bless {} }
{
no strict 'refs';
*{"hoge-fuga"} = sub {
die "YAY!\n";
};
}
しかし、これをよぶにはいったいどうしたら。。。
my $foo = Foo->new;
$foo->can("hoge-fuga")->();
はい。can で coderef をとればうまくいきました。
しかし、ちょっと無理矢理すぎて、使い勝手はすごくわるそうです。
使うのはあきらめたほうがよさそうですね!