in reply to Changing @INC before use'ing a module in a BEGIN block

My thinking to date on "compile time" versus "run time" has obviously been too simplistic.

Or too complicated. The reality is most simple: use and BEGIN statements are executed as soon as they are compiled.