最近、一時的に必要な変数のスコープを狭めるために do ブロックを使うことが多い。たとえば、次のようなスクリプトを考える。 my ($x, $y) = (3, 5); my $diff = $x - $y; my $first = $diff ** 2; my $second = abs($x ** 2 - $y ** 2); print "first = $first, second = $second\n"; $x と $y が与えられて、そこから $first, $second を作るのだが、そのとき一時的な変数 $diff を利用する。 このままでも動くんだが、$first と $second を算出するためだけに必要な $diff のスコープが無駄に広すぎるように思う。そこで、$first と $second を算出するブロックを作るとこうなる。 my ($first, $sec