in reply to Re: Counting words
in thread Counting words

I modified your code a little to fit the problem description slightly better:

use strict; my $num_words = 4; my @words = (); open FILE, "<in.txt" or die $!; while ( <FILE> ) { last if ( push ( @words, m/\s*([^\s]+)\s*/g ) >= $num_words ); } close FILE; print join( " ", @words ) . "\n";

As a side note, is there a reason to use [^\s] rather than \S, or is it just a matter of preference? Thanks.

Zenon Zabinski | zdog | zdog@perlmonk.org

Replies are listed 'Best First'.
Re^3: Counting words
by jbware (Chaplain) on Sep 13, 2004 at 15:49 UTC

    Yeah, "last if" is a good call, I wasn't thinking. The OP wasn't clear exactly how they wanted the results back (string or array of words), so I choose string. Nice convert to array though.

    As far as [^\s] versus \S, force of habit. If my laziness virtue would kick in like its supposed to, I'd have switched to \S by now and saved some keystrokes :)

    -jbWare