I like regexes :) and, well, they are not that
difficult to understand
use strict;
use warnings;
while (<DATA>) {
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|
Of course this puts still some constraints on the names,
e.g. two first names like in 'Johann Sebastian Bach' are
not allowed ... and probably a lot more special cases
-- Hofmator