avatar icon of nyarla

カラクリスタ ブログ

『輝かしい青春』なんて失かった方の
『にゃるら』の個人ブログです。

なおインターネットコンテンツと化した『にゃるら』さんとは別の個体です。

Perlで'&{}'をoverloadする

こんな感じのことをできるとしばらく前にConfig::Mergeのコード読んで知った。

package MyClass;

use overload
'&{}'       => sub { my $self = shift; return sub { $self->foo( @_ ) } },
fallback    => 1;

sub new { bless {}, shift }
sub bar { 'bar' }

package main;

my $obj = MyClass->new;

print $obj->bar; # 'bar'
print $obj->();  # 'bar'

#FIXME