one usage is a simple template engine implementation. As the first step in a template engine, it splits raw string into a sequence of pure text and template tag.
replace_split.pl
use strict;
my $template='<form action="${action}"> <input nane=username value=${username}/></form>';
print "Origin: \n$template\n\n";
print "Split to: \n";
while($template =~ s/^(.*?)\${(\w+)}//) {
print "$1\n";
print "$2\n\n";
};
output
Origin:
<form action="${action}"> <input nane=username value=${username}/></form>
Split to:
<form action="
action
"> <input nane=username value=
username