in reply to Re^2: What is method () ?
in thread What is method () ?

It's true that the block will limit the scope of lexical variables, but my point is that the code you have won't limit the scope of the package declaration. We can see how the package is still changed, even after the block ends:

package foo; { print __PACKAGE__; # prints "foo" } print __PACKAGE__; # also prints "foo"

But compare this, where the package is only changed within the block:

{ package foo; print __PACKAGE__; # prints "foo" } print __PACKAGE__; # prints "main"

Unless there is some strong further justification in the book (which I would be interested to see, but not interested enough to pay for it), I remain unpersuaded.