Actually, you
can require them. However, if there is any code inside that isn't wrapped in a sub, it will execute when the file is required. Example:
#!/usr/bin/perl
### the file doing the requiring
use strict;
use warnings;
use lib '/path/to/lib';
require('tmp.pl');
asdf();
---
#!/usr/bin/perl
### the file being required
use strict;
use warnings;
print "hi there\n";
sub asdf { print "well howdy"; }
1;
---
### the output
hi there
well howdy
---
It's all fine and dandy until someone has to look at the code.