Spreadsheet::WriteExcel では、set_num_format() を使って数値の表示形式を指定できます。
http://search.cpan.org/perldoc?Spreadsheet::WriteExcel
今回、「123456」->「\123,456」のように¥マーク付きの通貨形式で表示したいと思い、Spreadsheet::WriteExcelのドキュメントを見ましたが、$(ドル)付きの通貨形式(例: $0.00)しか記載されていません。
そこで、excel 2007の「セルの書式設定」の「表示形式」にユーザ定義として「\#,##0;\-#,##0」が定義されているので、試しにset_num_format()に渡してみると、バッチリ表示されました。
$fmt->set_num_format('\#,##0;\-#,##0');
おやっ?、正しく表示されない方もいるらしい。'\#,##0'かな?