my $target = shift; my $password; if ($target eq 'premiere') { $password = 'change me'; $extra_functionality = # Rendered from template call, or # should do_build() handle this? } elsif ($target eq 'dev') { $password = 'dev password'; $experimental_features = # Load from the template } else { # default $password = 'change me'; } do_build( $password, $extra_functionality, $experimental_features );