in reply to Parsing Names in a Text File

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