第14回 無名関数

さて、今まで、「無名配列」「無名ハッシュ」と見てきました。
いよいよ「無名関数」の登場です。


今までの無名シリーズに共通していることは次の通りです。


「名前をなくすと、一撃でリファレンスを取得できる」



ほほう。では、関数の名前をなくしてみますか。

use strict;

my $ref = sub {
             print "無名の世界へようこそ!", "\n";
          };  # 文(代入文)の終わりを示す セミコロン必要です



これが、無名関数です。 名前を書かなかったので、$refにはリファレンスが入りました。

では、どのように使うのでしょうか?
使う前に、今まで普通に名前があった関数がメインメモリでどのような様子であるか、あくまでイメージですが絵にしてみましょう。




なにか処理をするための領域がある ということを表してみました。



さて、これのリファレンスを持っている $refを絵に足してみましょう。


さあ、この絵のままプログラムしてしまえば関数を実行できます。
無名関数の実行はこうだ!!!

use strict;

my $ref = sub {
             print "無名の世界へようこそ!", "\n";
          };  # 文(代入文)の終わりを示す セミコロン必要です

print "--------\n";
$ref->();  # 実行

結果:

--------
無名の世界へようこそ!

ね、簡単でしょ。



ということで、「無名関数」がどんなものか紹介しました。


とりあえず参考までに次のページも貼っておきますね。
ビンゴ中西のほげほげPerlの無名シリーズ


それでは また〜。