use strict; use warnings; my ($text, %var); $var{VAR1} = 'hawg'; $var{VAR2} = 'mansion'; $var{VAR3} = 'flagpole'; read(DATA, $text, 8192); $text =~ s/<\?(\w+?)\?>/$var{$1}/g; print $text; __DATA__ Once upon a time there was a that lived in a on top of a .