Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

If you just want words...

by tedv (Pilgrim)
on Jan 17, 2001 at 01:37 UTC ( #52366=note: print w/replies, xml ) Need Help??


in reply to Re: Re: How can I use regex to copy each word of a string into a hash?
in thread How can I use regex to copy each word of a string into a hash?

If you just want words, why bother with punctuation at all? Just do a massive s/\W+/ /g on the string beforehand and you'll get a big list of words, separated by spaces. I suppose those damn apostrophies will cause you pain, and you want "it's" to differ from "its". It's unclear whether or not capitalization matters-- is "BASIC" a different word from "basic"? What about "Smith" versus "smith"?

Anyway, I'd probably write something like this:
local $/ = undef; $_ = <MY_FILE>; my %hash = (); $hash{$_}++ foreach split /[^\w']+/; # Change $_ to lc if case matters


-Ted

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://52366]
help
Chatterbox?
[marto]: good (early) morning all
[Lady_Aleena]: Morning marto.

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (4)
As of 2017-04-24 05:03 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    I'm a fool:











    Results (433 votes). Check out past polls.