From: WATANABE Tetsuya Date: 1998-07-30T12:30:54+09:00 Subject: [ruby-dev:3437] [BUG?] scan わたなべてつやです。 scan で、ブロックを使用した場合は OK なのですが、 次のスクリプトはうまく動作しません。 ------------------------------ while DATA.gets print "---\n" date, no = $_.scan(/^(\d{6})(\d{2})\.txt$/) print "date(#{date}) no(#{no})\n" arr = $_.scan(/^(\d{6})(\d{2})\.txt$/) print arr.size, "\n" $_.scan(/^(\d{6})(\d{2})\.txt$/) {|date, no| print "date(#{date}) no(#{no})\n" } end exit __END__ 98052101.txt 98052201.txt 98052401.txt ------------------------------ 実行結果です。「no」に値が入るのはブロックのときだけ のようです。 ------------------------------ $ ruby re2.rb | head --- date(98052101) no() 1 date(980521) no(01) --- date(98052201) no() 1 date(980522) no(01) --- date(98052401) no() ------------------------------ 実行環境は、ruby-1.1c1 Linux libc-5.4.38 と HP-UX 10.20 です。 -- WATANABE Tetsuya HP Japan e-mail tetsu@jpn.hp.com