Shorter, more idiomatic, and more efficient code attached. Feel free to modify. Output goes to STDOUT, which can be directed to a file.
#!/usr/bin/perl
use strict;
use warnings;
@ARGV > 0 or die "Insufficient arguments: Need word file, and Dict fil
+e names";
my ($wordfile, $dictfile) = @ARGV;
open my $d, "<", $dictfile or die "Cannot open $dictfile: $!";
open my $w, "<", $wordfile or die "Cannot open $wordfile: $!";
my %dict = map {split /\s/,$_,2} <$d>;
close $d;
while (defined (my $line=<$w>)){
for (split /\s/,$line){
if (my $meaning = $dict{$_}){
print "$_: $meaning\n";
next;
}
print "$_ is not in the dictionary\n";
}
}
close $w;
All great truths begin as blasphemies.
― George Bernard Shaw, writer, Nobel laureate (1856-1950)