sub process { my $src = shift; # possibly do some pre-processing on $src here my $value = eval $src; # possibly extra external logging if something went wrong return $@ ? "Error in '$src': $@" : $value; } #### $data =~ s/<# (\{.*?\}) #>/process($1)/eg;