diff --git a/bin/hangman b/bin/hangman index e5792ef2..03f77b7f 100755 --- a/bin/hangman +++ b/bin/hangman @@ -73,26 +73,19 @@ print "\nTHANKS FOR PLAYING!\n"; sub get_a_word { my $wordlist = "wordlist.txt"; my( $fh, $word ); - my( $line_num ) = 1; my( $random ) = rand(); open($fh, '<', $wordlist) or die "Could not open <$wordlist>: $!\n"; my $lines = 0; $lines++ while (<$fh>); + die "Empty word list: $wordlist\n" unless $lines; my $val = int($random * $lines) + 1; - close($fh) or die "Could not close <$wordlist>: $!\n"; - open($fh, '<', $wordlist) or die "Could not open <$wordlist>: $!\n"; - while( <$fh> ) { - if( $line_num == $val ) { - $word = $_; - chomp( $word ); - last; - } else { - $line_num++; - } - } + open($fh, '<', $wordlist) or die "Could not open <$wordlist>: $!\n"; + $word = <$fh> for (1 .. $val); + die "Could not find a word in $wordlist\n" unless defined $word; + chomp $word; close($fh) or die "Could not close <$wordlist>: $!\n"; return( $word ); }