in reply to When C<use Module;> *not* the same as C<require Module; import Module;>?

In the title, you leave out BEGIN{}. Having imported subroutines at compile time can make a difference as to how the following code is parsed.

More properly, use Module [numeric-constant] [LIST] is equivalent to

BEGIN { require Module; Module->VERSION(numeric-constant); # omitted if no constant given Module->import(LIST); # omitted if LIST is explicit () }