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


In reply to Re: Parsing Names in a Text File by Hofmator
in thread Parsing Names in a Text File by Perl Newby

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.