in reply to Making multiple replaces through Regex

$ perl -le' $_ = q[ <csp c="3"> ]; print; s{<csp c="(\d+)">}{ join "", map qq[<colspec colnum="$_" colname="col$ +_"/>], 1 .. $1 }eg; print; ' <csp c="3"> <colspec colnum="1" colname="col1"/><colspec colnum="2" colname="col2 +"/><colspec colnum="3" colname="col3"/>