This module is pretty much copied from a roguelike that I started writing. example 1: use Games::Roguelike::Caves; my $map = generate_cave(50,20); for (@$map){ for (@$_){ print; } print "\n" } OUTPUT: ........ ...... .......... ...... ........ ............... ........ ......... ................. ................... ................. .................. ................ ................... .. ............... ..................... .... ..... ....... ..................... .... ... ...... ....... ............ .... ... ...... .... ........... .. .... ..... .. ........... ...... .... .. ......... .......... .... ... ......... ............ .. .... .......... .............. ...... ...... .. ............... ...... ...... ... ...... ..... ..... .... ... ... example 2: use Games::Roguelike::Caves; my $map = generate_cave(50,20); outline_walls ($map); for (@$map){ for (@$_){ print; } print "\n" } OUTPUT: |-------------| |---| |-.............-| |--| |-...-| |...............| |--..-||-.....| |...............| |--| |-.....--......| |-......----....-| |-..-| |.............-| |-....-| |-....-| |-....| |............-| |-...-| |-.....---.....| |-...........| |-....----..............| |-..........| |----.......................| |-.........| |-..........................-| |-.........| |-...........................| |.........-| |............................| |........-| |...........................-| |........-| |.......................----| |-........-| |-.....................-| |---......| |-...................-| |-.....| |...................| |....-| |..................-| |-..-| |-.............----| |--| |-------------| Ecample 3: use Games::Roguelike::Caves; #2 iterations, 50% walls... my $map = generate_cave(50,20,2,.5,"W",' '); outline_walls ($map,"W",' '); for (@$map){ for (@$_){ print; } print "\n" } OUTPUT: W|---|WW|-----|WW|-|WWWWWW|---|W|----|WWWWWW|--|WW W| -||- -||- |WWWW|-- --- ----|W|- |WW W| -- -- |WWW|- --| |WW W|- --- --|WW|- | |WW WW|- --|-- |WWWW| --- |WW W|-- -||- ||-|W|- -|W| | -|W W| -|| -|- --- |----- --| -| |- || | -- |-- | | | -- -||--- | | -- --|W| | | -||- ---- ||- | | | -|WW| -|WW| -- -|- | |------| --||----- ----- |W|- | W| |--|W|- | -|WW|----- -||- | W|- |W|--| -|WWW|--|---- || | W| ||- -- -- |WW|- -|WW|-- -|| | W|--- -|- || -|WW| |WWWW|-|W| -| WWWW|-|| | | | || |WWW|- |WWWWWWWW|--|W WWWWWWW|- |-|-|---|| --|WWWW|- |WWWWWWWWWWWWW WWWWWWWW|-----|WWWWWWWW|-|WWWWWWW|--|WWWWWWWWWWWWW