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

From: n991059@...
Date: 1997-05-22 03:53:58 UTC
List: ruby-list #2996
  平松です。rubyのソースに付いてくるサンプルプログラムに dir.rb
というのがあります。引用すると、

  # directory access
  # list all files but .*/*~/*.o
  dirp = Dir.open(".")
  for f in dirp
    $_ = f
    if (~/^\./ || ~/~$/ || ~/\.o/)
      print f, "\n"
    end
  end
  dirp.close

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

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

にしてみると、なんと動作が変わらなかったりします。
さて、ここで質問は、

  `~' という文字は正規表現の否定のような
  意味があるんじゃないんですか?

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

// 平松 祥史 n991059@yamata.icu.ac.jp
// 国際基督教大学 3年 理学科 情報科学専修

In This Thread

Prev Next