カンマ付きの文字列に変換するには?

[上に] [前に] [次に]
フランクフルトの少女クララ 1999/12/16(木) 16:27:33
$hogehogeに入っている数字をカンマ付きに変換するにはどうしたらいいのでしょうか?

sprintf と %d の使い方のバリエーションという気はするんですが…。

ロッテンマイヤーさんや、セバスチャンも知りませんでした。よろしくお願いします!

ふじ 1999/12/16(木) 16:37:38
../199804/98040031.htm
http://www.din.or.jp/~ohzaki/perl.htm#NumberWithComma
とか。

かや 1999/12/16(木) 16:42:00
../199804/98040031.htm
こういうことでしょうか?

かや 1999/12/16(木) 16:42:37
すみませんボーッとしてました…。

フランクフルトの少女クララ 1999/12/16(木) 16:59:02
[[解決]]
1 while $hogehoge =~ s/(\d+)(\d\d\d)/$1,$2/;
1 while $hogehoge =~ s/(^|[^.\d])(\d+)(\d\d\d)/$1$2,$3/; # 小数点付きの場合
$hogehoge =~ s/(\d{1,3})(?=(?:\d\d\d)+(?!\d))/$1,/g;
$hogehoge =~ s/\G((?:^-)?\d{1,3})(?=(?:\d\d\d)+(?!\d))/$1,/g; # 小数点付きの場合

出来ましたぁ!
ありがとうございましたぁ!

下2つの方が早いそうなので、そっちを使いますぅ!

[上に] [前に] [次に]