in reply to Re^3: HTML entity write error
in thread HTML entity write error

Spreadsheet::Write actually uses Text::CSV to output CSV files anyway. Spreadsheet::Write just provides a slightly nicer interface, and more importantly allows you to use the same interface for writing either CSV or Excel files.

FWIW, the reason I'm quite familiar with Spreadsheet::Write is because I forked it to create Spreadsheet::Wright which is a drop-in replacement that also supports OpenOffice, HTML, XHTML and JSON output (and has saner internals).

use Moops; class Cow :rw { has name => (default => 'Ermintrude') }; say Cow->new->name"