use strict; our $aa=10; our $vv=20; my $x='asdf $aa + $vv asdf '; $x =~ s/(.*?)<\/add>/process($1)/gsei; print $x; sub process(){ my $var = shift; print $aa; print $vv; print $var; #here i need to variable interpolate the $var string }