You could easily remove the hard coded puzzle by reading from a file or by using the __DATA__ section. I might be inclined to write my own take on the problem if you are interested??? One thing you should consider is offering command line options. Not all word search puzzles are created equal. For instance - some only have words going in straight lines while others allow snakes. Also consider that a word may be contained within a longer word - most puzzles that I have seen disallow this.