'Hello World' =~ /(hello)/i; print $1; # prints 'Hello' #### my %template = ( tag1 => 'test1', tag2 => 'test2', ); while () { print "before: $_"; s/%([^%]+)%/$template{lc($1)}/ge; print "after: $_"; } __DATA__ %tag1% some text %TAG2% some more text