Here's my shot at it:
use strict; my @list=('xxxxxa : yyyyy blah blah','xxxxxb : yyyyy blah blah',' ', +'xxxxxc : yyyyy blah blah',': this is strange','xxxxxd : yyyyy blah b +lah',"\n",'xxxxxe : yyyyy blah blah'); my @result = map {m/(.*?)\s+:/} @list; print join("\n",@result);
It throws out blank lines, lines with only a trailing newline and lines which start with a colon.
The operative part counts 24 characters.
CountZero
Update:Added ? to make the match non-greedy (see blokhead's remarks)
Update 2:The operative part could be written as
map/(.*?)\s+:/,@list
and is then only 20 characters long.
"If you have four groups working on a compiler, you'll get a 4-pass compiler." - Conway's Law
In reply to Re: golf anyone? (taking first field)
by CountZero
in thread golf anyone? (taking first field)
by John M. Dlugosz
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |