[ruby-list:2997] Re: sample program dir.rb not work?

From: matz@... (Yukihiro Matsumoto)
Date: 1997-05-22 04:06:33 UTC
List: ruby-list #2997
まつもと ゆきひろです.

In message "[ruby-list:2996] sample program dir.rb not work?"
    on 97/05/22, n991059@yamata.icu.ac.jp <n991059@yamata.icu.ac.jp> writes:
|
|  平松です。rubyのソースに付いてくるサンプルプログラムに dir.rb
|というのがあります。

|これは "."で始まらず、"~"や".o"で終らないファイルをリストするプロ
|グラムとして作ってあるようですが、実際には"."で始まり、"~"や".o"
|で終るファイルをリストしてしまいます。

すみません.プログラムが間違ってます.いつの間に変えたんだろう? 

   unless (~/^\./ || ~/~$/ || ~/\.o/)

に変更してください(if => unless).

さて,それはそれとして ~について説明すると,

  文字列や正規表現に対する ~演算子は $_ =~ obj の省略形

です.否定の意味はありません.これはString.htmlなどに記述し
てありますね.

さて,ことをややこしくしているのはもうひとつのルールである

  条件式に現れる文字列,正規表現リテラルは $_ =~ obj の省略形

です.これによって

   unless (~/^\./ || ~/~$/ || ~/\.o/)

と

   unless (/^\./ || /~$/ || /\.o/)

は同じ意味になります(||演算子の両辺も条件式です).こっちは
syntax.htmlに記述してあります.

|ということです。マニュアルにも何も書いてなかったみたいですが、あっ
|てもなくても同じものなんですか?

# いやあ,書いてはあるんですけど読みにくくて見つからなかった
# ということでしょう.^^;;;
                                まつもと ゆきひろ /:|)

In This Thread