Perlテックブログ

ITエンジニアの成長意欲を刺激する技術考察、モジュール開発の日記。Perlイベントや国内や海外のPerlの記事の紹介。

無名サブルーチンは本当に無名にしてもよいのかも - SPVM開発日記

昨日は、無名サブルーチンは、名前があるサブルーチンのシンタックスシュガーと書いたのだけれど、もしかしたら、本当に無名にしたほうがよいのかもしれないと思い始めた。

名前がないということは、普通に呼び出すのには困らない。

ひとつの問題は、インターフェースに代入したときに、名前がないので、名前では呼び出せないということだ。

# インターフェース
package SPVM::Comparator : interface {
  sub compare : int ($self : self, $x1 : int, $x2 : int);
}
my $comparator : Comparator = sub : int ($self : self, $x1 : int, $x2 : int) {
  
}

名前がないけど、呼び出す方法はないのかと考えていると、無名サブルーチンというのは、たったひとつしか、パッケージの中に定義されていないのだから、名前で検索しなくても、最初のサブルーチンを呼び出せば、実行できるということに気が付いた。

この方法で、実装してみよう。