in reply to Grabbing first column of text

Here is a nice simple example. We read from the DATA file handle but it could just as well be a file handle you open with an open FILE, "<file.txt" or die "Oops $!\n"

while (<DATA>) { ($first) = $_ =~ m/^(\S+)/; print "$first\n"; } __DATA__ This is a line. Another line is here. Here's a line. Line five is this one.

The while iterates over the filehandle assigning each line to $_. The next line is a standard perl idiom to capture a regex match. We match all non whitespace at the begining of the each line. We specify the beginning with the ^ and the non whitespace with the \S the + after \S specifies 1 or more of (and as much as possible)

You can also do this with split. Split returns an array of values so (split/\s/,$_)[0] is the first value when we split $_ on whitespace. Note that in the example I don't bother to specify $_ as this is the default string that split works on.

while (<DATA>) { $first = (split/\s/)[0]; print "$first\n"; }

Getting completely carried away you can also do it using substr and index. Index gets you the postion of the first space and substr gets you the string.

while (<DATA>) { $first = substr $_, 0, index $_, " "; print "$first\n"; }

Hope this helps.

cheers

tachyon

s&&rsenoyhcatreve&&&s&n.+t&"$'$`$\"$\&"&ee&&y&srve&&d&&print