my $closure;
{
  my $hoge = "abc";
  $closure = sub { print "$hoge\n"; };

  $closure->();      # abc
  print "$hoge\n";  # abc
}
$closure->();        # abc
print "$hoge\n";    # エラーになる


$hoge はレキシカル変数なのでブロックの中でのみ有効。
しかし、クロージャの中にレキシカル変数を閉じ込めると、ブロックの外でも参照できる。
こんな感じでわかるかな?