サブルーチンのリファレンスとデリファレンス

◎お題
サブルーチンを作り、そのサブルーチンのリファレンスを表示する。また、そのリファレンスをデリファレンスしてサブルーチンから結果を得る。

#! /usr/bin/perl
use strict;
use warnings;

#計算結果を表示
print &keisan(4,5),"\n";


#サブルーチン、keisanのリファレンスを表示(ハッシュや配列のリファレンスを作るときと作り方は一緒)
print \&keisan,"\n";

my $ref_code = \&keisan; #$ref_code= \&keisan(4,5);はダメ。
print "$ref_code\n";


#デリファレンスしてサブルーチンを回す。(サブルーチンのデリファレンスは、リファレンスの一番左に&をつけるだけ。)
print &$ref_code(4,5),"\n";
print $ref_code->(4,5),"\n";#なんかこれ、メソッドを呼び出すときにそっくり


sub keisan{
    my($tate,$yoko)=@_;
    my $menseki = $tate * $yoko;
    return $menseki;
}

◎ポイント
スカラー変数にサブルーチンのリファレンスを入れるとき、引数も一緒に渡すことはできない。