icon Top 9 categories map      RocketAware > Perl >

How do I process each word on each line?

Tips: Browse or Search all pages for efficient awareness of Perl functions, operators, and FAQs.



Home

Search Perl pages


Subjects

By activity
Professions, Sciences, Humanities, Business, ...

User Interface
Text-based, GUI, Audio, Video, Keyboards, Mouse, Images,...

Text Strings
Conversions, tests, processing, manipulation,...

Math
Integer, Floating point, Matrix, Statistics, Boolean, ...

Processing
Algorithms, Memory, Process control, Debugging, ...

Stored Data
Data storage, Integrity, Encryption, Compression, ...

Communications
Networks, protocols, Interprocess, Remote, Client Server, ...

Hard World
Timing, Calendar and Clock, Audio, Video, Printer, Controls...

File System
Management, Filtering, File & Directory access, Viewers, ...

    

How do I process each word on each line?

Use the split function:

    while (<>) {
        foreach $word ( split ) { 
            # do something with $word here
        } 
    }

Note that this isn't really a word in the English sense; it's just chunks of consecutive non-whitespace characters.

To work with only alphanumeric sequences, you might consider

    while (<>) {
        foreach $word (m/(\w+)/g) {
            # do something with $word here
        }
    }


Source: Perl FAQ: Regexps
Copyright: Copyright (c) 1997 Tom Christiansen and Nathan Torkington.
Next: How can I print out a word-frequency or line-frequency summary?

Previous: What does it mean that regexps are greedy? How can I get around it?



(Corrections, notes, and links courtesy of RocketAware.com)


[Overview Topics]

Up to: NUL Terminated String processing




Rapid-Links: Search | About | Comments | Submit Path: RocketAware > Perl > perlfaq6/How_do_I_process_each_word_on_ea.htm
RocketAware.com is a service of Mib Software
Copyright 2000, Forrest J. Cavalier III. All Rights Reserved.
We welcome submissions and comments