「Perlオブジェクト、リファレンス、モジュール」
という本のクロージャという項目に書かれていた
内容について質問です
ちょっと長くなりますがお許し下さい
引用----------------------------------------
use File::Find;
my $total_size = 0;
find(sub { $total_size += -s if -f }, "."};
print $total_size, "\n";

この無名サブルーチンが変数$total_sizeにアクセス
している点に注目して下さい。変数$total_sizeが無名
サブルーチンのスコープの外部で宣言されているにも
かかわらず、この無名サブルーチンは変数にアクセス
しています。つまり、findから呼び出されたコールバック
サブルーチンは、「「「本来なら直接アクセスできない変数
にアクセスでき」」」、さらにその変数の値を更新することが
できるのです。
---------------------------------------------------

「「「」」」で囲んだところが理解できません。
たとえば
my $value = 10;
function();
sub function {
  print $value;
}
このコードはちゃんと10と表示されます。サブルーチン内から
サブルーチン外で宣言された変数には直接アクセスできます。
なのに本では「本来なら直接アクセスできない変数」と書かれ
ています。どういうことなのでしょうか?