10.16 サブルーチンをネストする
一方のサブルーチンが、もう一方のサブルーチンからしか参照、呼び出しができないようにしたい。
内側の関数を通常のサブルーチンにするのではなく、クロージャにする。そして、そのリファレンスを適当な名前の型グロブに一時的に代入し、ローカル関数を作成する。
sub outher { my $x = $_[0] + 35; local *inner = sub { return $x * 19 }; return $x + inner(); }
一方のサブルーチンが、もう一方のサブルーチンからしか参照、呼び出しができないようにしたい。
内側の関数を通常のサブルーチンにするのではなく、クロージャにする。そして、そのリファレンスを適当な名前の型グロブに一時的に代入し、ローカル関数を作成する。
sub outher { my $x = $_[0] + 35; local *inner = sub { return $x * 19 }; return $x + inner(); }