in reply to Assigning a file to an Array.

As JavaFan has already pointed out, you don't check to see whether your open succeeded. The usual way to do this is the "do or die" idiom.

my $dict_file = '/usr/share/dict/words'; open my $dict_fh, '<', $dict_file or die "Can't read '$dict_file': $!";

Be sure to include $! in the error message when you die so you know why it didn't work.

I agree also with ikegami that you should Use strict and warnings.

The reason your @blankword winds up too long is that each of @words has a newline at the end of it. You can take care of that with chomp similar to how Ciclamino suggests or just do what you're doing now and then take care of @words before you select one.

open my $dict_fh ... my @words = <$dict_fh>; chomp @words;

I have not read the bulk of your code, so there could be more errors there as well.

As an aside, since you only ever select one word from your dictionary, you don't have to store the whole array of them. See How do I select a random line from a file?