As stated on CPAN [1] the perl module Games::Maze creates mazes. You can create 3-dimensional rectangular or hexagonal mazes and then manipulate maze objects using the available methods.
This module has to_ascii() method that allows to print maze view from command prompt or get the string which will describe the maze. The new line in this string will separate rows of the maze. The walls will be marked some characters like underscore and “:”.
There is also another module Games::Maze::SVG [2] which can build mazes in SVG using Games::Maze. The Games::Maze::SVG module supports the creation of 2-dimensional mazes in an SVG format suitable for printing or playing interactively.
So if you like creating maze perl has modules to make this job very easy.