[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: version check script



遠藤です。

Mitsuru Oka <oka@debian.or.jp> writes:

> 岡@情報科学.高知大です。
> 
> ありがとうございます。根本的に解決してみました。正規表現を不
> 必要に緩くしたのが原因でした(先に書いた仕様上の緩和とは無関係)。
> 
> ついでに:
>   * Perl での比較演算子:
>       `==' は数値としての比較
>       `eq' は文字列としての比較
>     です(今回は eq でいいのですが、正規表現がいい加減だった
>     ので余計なスペースを混入してしまったのが原因です)。
>   * shift; と書くと $_ = shift; と同等の意味を持ちます。

ありがとうございます。

ただ、まだ cvs リビジョン番号のチェックがうまくいってないようです。
英語ファイルと日本語ファイルの cvs リビジョン番号が同じでも "ER" が表
示されてしまいます。

どうも、サブルーチン get_cvs_revision で 引数がパターンスペースにうま
く渡っていないようです。そのために 61 行目の検索に失敗し、常に 0 が返
されているようです。

  59: sub get_cvs_revision {
  60:     shift;
  61:     return 0 unless m|^(.+)/(.+)$|;

論理的な理由は説明できませんが、60 行目を $_ = shift; にするとうまく動
作します。

# なんででしょ?

-- 
Yoshizumi Endo <y-endo@xxxxxxxxxxxxxxx>