sub encrypt { my $x = shift; chomp $x; return reverse substr crypt( $x, 'ar' ), 2; } # choose a random dictionary word my $dictionary = '/usr/share/dict/words'; my $secret_word; open my $dict_fh, '<', $dictionary or die "Can't read '$dictionary': $!"; my $line_no = 0; while ( my $word = <$dict_fh> ) { chomp $word; $secret_word = $word if rand() < 1/++$line_no; } close $dict_fh or die "Can't close dict: $!"; print "my secret word is: $secret_word\n"; my $encrypted_word = encrypt( $secret_word ); undef $secret_word; # figure out which word it was open $dict_fh, '<', $dictionary or die "Can't read '$dictionary': $!"; while ( my $word = <$dict_fh> ) { chomp $word; if ($encrypted_word eq encrypt($word)) { print "secret word is: $word\n"; last; } } close $dict_fh or die "Can't close dict: $!";