#!/usr/bin/perl -w use strict; my $main_template = do { local $/; }; $main_template =~ s/%%([^%]+)%%/Callback($1)/ge; print $main_template, "\n"; sub Callback { my $field = shift; my $val; our $keycount; if ($field eq 'searchresult') { $val = 'SEARCH RESULT HERE'; } elsif ($field eq 'premiumlistings') { $val = 'PREMIUM LISTINGS HERE'; } elsif ($field eq 'keywords') { $keycount++ ? do { $val = 'FIELD(SEARCH)' } : do { $val = 'FIELD(KEYWORDS)' }; } return $val; } __DATA__ %%keywords%%
%%searchresult%%
%%keywords%%
%%premiumlistings%%
#### FIELD(KEYWORDS)
SEARCH RESULT HERE
FIELD(SEARCH)
PREMIUM LISTINGS HERE