A CPAN search finds a few Verilog modules. Maybe Verilog::CodeGen gives you some ideas. emacs verilog-mode also helps instantiate modules. I've also used Verilog::Netlist to do something similar.
Comment on Re: Anyone Build verilog testbench by perl?