use strict; use warnings; while () { my $shortname = join '. ', /\|([A-Z])\S*\s+([^|]+)/; print $shortname," or "; # or if the rest of the line is to be left alone s/(\|[A-Z])\S*\s+([^|]+)/$1. $2/; print; } __DATA__ 24|Janeth Arcain|6|6|217|36.2|51|106|.481| 321|Elen Chakirova|5|0|27|5.4|2|4|.500| 380|Kelley Gibson-White|6|0|85|14.2|3|17|.176|8|8|1.000|