From: Tokita Kousui Date: 2000-12-01T17:32:25+09:00 Subject: [ruby-list:26246] Re: String#sub! on RAA: auto bookmark ???? 時田です すいません おかしな引用だけのメールを出してしまいました ペコ すいません、記事を見て その出力結果の "" と [""] を見て 配列と文字列のに関して指摘されているものと思った事と 「これは1.4でも同じなので…」から、別の問題と判断してしまった事。 また、 i.type を確認したことで、 "" と [""] の問題ではなさそうかと 思って、ruby-list:26240 では、あらいさんの記事に触れるのを忘れてしまいました ごめんなさい ですが、どうも違うようですね(^^; ruby-list:26236 の findout[0].sub! の結果で 変数 d がクリアされているから #記事中の出力結果は 一番最後の p d, findout で、 Find.find(d)ブロック内の #ものではありませんよね findout は Find:find の結果を格納した配列で findfunc が、 Find:find を呼び出して結果を配列で返す autobookmark内の関数 findout = findfunc ( d, "d", true ) findout.each { |i| i.sub!( /^#{d}/, "" ) } で、i.sub! 実行直後に変数d が変更されることがわかっていたので 少なくとも、 find(d.dup) では事態は変わらないと思ったためです。 しかし、 findout = findfunc ( d.dup, "d", true ) とすると、例の事象が起きなくなってしまいました ますますわからなくなりました(^^; スレッドの先頭に書いた 再現しなかった と書いたスクリプトでは再現せず ruby-list:26230 のスクリプトで再現する理由は何でしょう?(^^; それが、Array#sub! と String#sub! の違いであればわかりますが bkmksubrt.rb の i.sub! は、String#sub! ですよね? -- 時田幸粋 http://ibis.where-i.net/index.htm