Beefy Boxes and Bandwidth Generously Provided by pair Networks DiBona
There's more than one way to do things
 
PerlMonks  

Re: Reading Files

by Kenosis (Priest)
on Nov 02, 2012 at 06:11 UTC ( #1001917=note: print w/ replies, xml ) Need Help??


in reply to Reading Files

You've received excellent suggestions on how to split on whitespace to get the words out of lines.

The following is more than requested, but perhaps it will assist your scripting:

  • Always begin your scripts with use strict; use warnings;
  • Use lexically-scoped variables (my), including as file handles
  • Use the three-argument form of open
  • You can omit the parentheses when using chomp in your script (but not in all scripts)
  • The second chomp isn't necessary, since you'll be splitting on whitespace
  • You need to enclose your if(!exists $dict{$word}) ... within a for loop that iterates through the words in @words

Given the above, consider the following (it's been run through perltidy):

use strict; use warnings; my %dict; open my $infile, '<', 'words.txt' or die "can't open file $!"; while ( my $word = <$infile> ) { chomp $word; $dict{$word} = 1; } close $infile; while ( my $line = <> ) { my @words = split /\s+/, $line; for my $word (@words) { if ( !exists $dict{$word} ) { print "$word is mispelled\n"; } } }

I hope this is helpful.


Comment on Re: Reading Files
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1001917]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (4)
As of 2014-04-21 04:40 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (490 votes), past polls