この宿題漏れなら3行で終わらせる。

$_ = 'テスト,:10,田中<TANAKA>NONAMAEHA一郎<ITIROU>TO言<I>IMASU,N000,123,__,050210,99999,';
1 while s/^([^<>\n]*?)([^[:ascii:]<>]+)<(.+?)>([^\n]*?)$/\1\2\4\n\1\3\4/m;
print $_, "\n";