Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery

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 all is quiet...

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (5)
As of 2017-12-11 23:10 GMT
Find Nodes?
    Voting Booth?
    What programming language do you hate the most?

    Results (318 votes). Check out past polls.