my %template = ( apachectl => 'my_apachectl', dname => 'my_foo', ); open my $fh, '<', $apachectl_template or die "Failed to open '$apachectl_template': $!"; my $template = do { local $/; <$fh> }; $template =~ s/\$(\w+)/$template{$1} || $1/ge;