in reply to Module Recommendations

I'd probably use Text::CSV_XS for reading the input and Template to output the HTML table.

I usually keep an array of values plus coordinates of cells to highlight, so I can also output a plain text table with colour highlighting, using Text::Table and Term::ANSIColor.

map{substr$_->[0],$_->[1]||0,1}[\*||{},3],[[]],[ref qr-1,-,-1],[{}],[sub{}^*ARGV,3]