use HTML::Template; my $tmpl = HTML::Template->new( scalarref => \do { local $/; }, die_on_bad_params => 0, loop_context_vars => 1, filter => sub { my $s=shift; $$s=~s/%~([^~]+)~%//g; }, ); $tmpl->param( userid => 99999 ); $tmpl->param( username => 'foo' ); print $tmpl->output; __DATA__ %~username~% is easier to edit than ">