in reply to Re: Location of 'use' statements (tye)
in thread Location of 'use' statements

This is very close to what I do. I think of strict and warnings as part of an extended shebang line. Exporter is ugly so I avoid it wherever possible; though when I use it, I tend not to treat it and its globals specially. Finally, I reserve require solely for deferred loading of modules. So I arrive at a layout like this:
#!/usr/bin/perl use strict; use warnings; package FooBar; use Some::OO::Module (); use Some::Function::Module qw( Func1 Func2 ); use base 'Quux'; use vars qw($VERSION); $VERSION= 1.001; use constant _IdNo => 0; use constant _Name => 1; use constant _Pos => 2;

Makeshifts last the longest.