in reply to Require or Do vs. more maintenance

If part1() and part3() are going to be used by multiple scripts, then put them in their own module ... but are you running Perl4 or Perl5?

If you are running Perl5, you could do this:

package MyPackage; use base 'Exporter'; use strict; use warnings; our @EXPORT_OK = qw/part1 part3/; sub part1 { #code for part1 } sub part3 { #code for part3 } 1; # then in your script #!/usr/bin/perl use MyPackage qw/part1 part3/; use strict; use warnings; part1(); part2(); part3(); exit; sub part2 { #code for part2 }