Welcome to HBH! If you had an account on hellboundhacker.org you will need to reset your password using the Lost Password system before you will be able to login.

unscrambles scrambled words using a dictionary - Perl Code Bank


unscrambles scrambled words using a dictionary
uses a file of words to find unscrambled words from a file of scrambled words. algorithm is words should be the same length of scrambled words and have only its characters.
                #!/usr/bin/perl
# usage: unscramble.pl scrambled_list_file word_list_file
use strict;

main(@ARGV);

sub main{
	my $scrambled_file = shift;
	my $wordlist_file = shift;
	open my $fh,"<$wordlist_file" or die "cannot open the file: $!";
	my @wordlist = <$fh>;
	close $fh;
	open my $fh,"<$scrambled_file" or die "cannot open the file: $!";
	my @scrambled = <$fh>;
	close $fh;
	foreach my $scrambled (@scrambled){
		$scrambled =~ s/\r\n//g;
		$scrambled =~ s/\n//g;
		print $scrambled. " -> ";
		my @chars = split '',$scrambled;
		foreach my $word (@wordlist){
			$word =~ s/\r\n//g;
			$word =~ s/\n//g;
			my $flag = 1;
			if (length $word == length $scrambled){
				foreach my $char (@chars){
					if (not $word =~ /[$char]/){
						$flag = 0;
						next;
					}
				}
				my $allchars = "0123456789abcdefghijklmnopqrstuvwxyz";
				$allchars =~ s/[@chars]//g;
				my @nochars = split '',$allchars;
				foreach my $char (@nochars){
					if ($word =~ /[$char]/){
						$flag = 0;
						next;
					}
				}
				if ($flag == 1){
					print $word ."\n";
				}
			}
		}
	}
}
            
Comments
Sorry but there are no comments to display