[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

(DTPtechNote:1030) [perl] 数字の処理



とりあえずこちらにもメモしておく。
リクエストは
 ◎一桁の時は全角数字に、
 ◎二桁または三桁の時は半角数字に、
 ◎四桁以上は漢数字に

#!/usr/bin/perl -w
use utf8;
use open ':utf8';
foreach $i (@ARGV){
open(IN, "$i") || die "can't open $i \n";
open(OUT, ">$i.new")|| die "can't open $i.new \n";


while(<IN>){ 

#数字はすべて全角数字に
tr/0-9/0-9/;

#4桁以上は漢数字に
s/([0-9]{4,})/($n = $1) =~ tr#0-9#〇一二三四五六七八九#, $n/eg;

#2〜3桁は半角数字に
s/([0-9]{2,3})/($n = $1) =~ tr#0-9#0-9#, $n/eg;

print OUT;
 }
close(IN);
close(OUT);

}