At a cursory glance over perldebguts I at least find DB::postponed() which is called after a file is required but before it is executed, this might or might not help you, as you are quite unclear on what you actually want to do, except differentiate between use and require, and your current solution does not tell me how you differentiate between the two with it.