サブルーチンのリファレンスとデリファレンス
◎お題
サブルーチンを作り、そのサブルーチンのリファレンスを表示する。また、そのリファレンスをデリファレンスしてサブルーチンから結果を得る。
#! /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; }
◎ポイント
スカラー変数にサブルーチンのリファレンスを入れるとき、引数も一緒に渡すことはできない。