in reply to
non-greedy piecewise matching
You have to use '.+?' instead of '.+' to make non-greediness. Take a look at perlre.
As you said, if .xml is present after each records, then we can also use substitution or split function.
$file =~ s/(\.xml)/$1\n/g;
The same name on every site (unless it is taken already)
A different name for every site
The same name for sites I don't care about, but different names on sites I do care about
Different names for sites I don't care about, but the same name on sites I do care about
The anonymous account
Someone else's username
Root, after hacking into the site
Results (250 votes),