#!perl use strict; use warnings; my $pre = join "", ; my %vars = ($pre =~ /\* \[([^\s;]+)\] = (.+)$/gm); $pre =~ s[#\{(.+?)\}]{$vars{$1} ? $vars{$1} : $&}ge; print $pre;