Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot

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.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1001917]
and the grasshoppers chirp...

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (3)
As of 2017-03-23 03:00 GMT
Find Nodes?
    Voting Booth?
    Should Pluto Get Its Planethood Back?

    Results (281 votes). Check out past polls.