ごとけんです

In message "[ruby-list:18105] Re: [SGC] count chars"
    on 99/10/29, Yukihiro Matsumoto <matz / netlab.co.jp> writes:

>|p Kconv.toeuc(ARGF.read).gsub!(/\s+/p,"").scan(/./).size
>
>scan(/./) でなくて split(//) の方が速いかも。
># 試してません

微妙に scan(/./) の方が速いようです。

% ruby -r kconv -e 'p Kconv.toeuc(ARGF.read).gsub!(/\s+/,"").split(//).size; p Time.times' x 
200000
#<Struct::Tms utime=21.58333333, stime=0.5666666667, cutime=0.0, cstime=0.0>
% ruby -r kconv -e 'p Kconv.toeuc(ARGF.read).gsub!(/\s+/,"").scan(/./).size; p Time.times' x 
200000
#<Struct::Tms utime=19.78333333, stime=0.4666666667, cutime=0.0, cstime=0.0>


あと、これってバグ?

% ruby -e 'print "あ"*10' >! x                                           
% ruby -v -e 'p ARGF.read.gsub!(/\s+/,"").split("")' x 
ruby 1.4.2 (1999-09-18) [i386-freebsd3.2]
/tmp/rbI31980:1: undefined method `split' for nil (NameError)

-- gotoken