Acme::Don'tというモジュールがある。これが提供するdon't{}は,Perl組み込みのdo{}とは逆に,ブロックの中身を実行しない。たとえば以下のコードのように使う*1。 use Acme::Don't; don't{ print "Hello, world!\n"; # => 実行されない }; これは問題ない。まさにその通りで,予想通りの振る舞いといえる。しかし,don't{}を入れ子にすると話が変わってくる。 use Acme::Don't; don't{ don't{ print "Hello, world!\n"; # => ??? }; }; 現状では何も実行されないが,これは予想通りの振る舞いといえるか。2重否定は肯定になってしかるべき,つまり"Hello, world!\n"を印字してしかるべきではないか。 そこで,ブロックが与えられたとき通常は実行されず,二重否

