10.16 サブルーチンをネストする

一方のサブルーチンが、もう一方のサブルーチンからしか参照、呼び出しができないようにしたい。

内側の関数を通常のサブルーチンにするのではなく、クロージャにする。そして、そのリファレンスを適当な名前の型グロブに一時的に代入し、ローカル関数を作成する。

sub outher {
  my $x = $_[0] + 35;
  local *inner = sub { return $x * 19 };
  return $x + inner();
}