立石です。 Date: Tue, 16 Feb 1999 07:02:05 +0900 From: Yasuhiro Fukuma <yasuf / big.or.jp> yasuf> > わははそうか、今まで =~ の否定は !=~ だと思っててて yasuf> > これを使うとなぜか期待どおりに動かんなと使わなかった yasuf> > のだけど、!~ だったんですねえ(マニュアル読め)。 yasuf> yasuf> わたしはPerlで嫌というほど間違えたおかげで、しっかり頭に叩き込まれてたり yasuf> します(^^;; 僕はPerlが不得手なので !=~ の方が良かったりします。 で、!=~が期待どおり解釈されるためのパッチを作ってみました。 Takaaki Tateishi <ttate / jaist.ac.jp> --- ruby-1.3.1-990215/parse.y.orig Tue Feb 16 07:13:19 1999 +++ ruby-1.3.1-990215/parse.y Tue Feb 16 07:31:49 1999 @@ -2433,7 +2433,7 @@ static int yylex() { - register int c; + register int c,c2; int space_seen = 0; struct kwtable *kw; @@ -2522,7 +2522,13 @@ case '!': lex_state = EXPR_BEG; if ((c = nextc()) == '=') { + if((c2 = nextc()) == '~' ){ + return tNMATCH; + } + else{ + pushback(c2); return tNEQ; + }; } if (c == '~') { return tNMATCH; --- ruby-1.2.3/parse.y.orig Tue Feb 16 07:35:35 1999 +++ ruby-1.2.3/parse.y Tue Feb 16 07:37:50 1999 @@ -2303,7 +2303,7 @@ static int yylex() { - register int c; + register int c,c2; int space_seen = 0; struct kwtable *kw; @@ -2388,7 +2388,13 @@ case '!': lex_state = EXPR_BEG; if ((c = nextc()) == '=') { + if((c2 = nextc()) == '~'){ + return tNMATCH; + } + else{ + pushback(c2); return tNEQ; + }; } if (c == '~') { return tNMATCH;