(toppers-users 3566) Re: ASPのmakedepでuse POSIXしている理由は?

Hiroaki TAKADA hiro @ ertl.jp
2011年 10月 12日 (水) 10:16:01 JST


邑中様

使用している getopt.pl の違いでしょうか。私の環境の getopt.pl は、
perl 5.12.3 に含まれているもので、

;# $RCSfile: getopt.pl,v $$Revision: 4.1 $$Date: 92/08/07 18:23:58 $

というタグがついているもので確かに古いです。

このコメントには、

;# Process single-character switches with switch clustering.  Pass one
argument
;# which is a string containing all switches that take an argument.

とありまして、Getopt の引数は、パラメータを取るスイッチのリストです。
引数に含まれないスイッチは、あれば 1 に定義されるという仕様です。

高田広章
名古屋大学

(11/10/12 9:43), Masaki Muranaka wrote:
> 高田先生,users MLのみなさま:
> おはようございます.
> 
> POSIXモジュールの件は承知しました.
> 
> -d の件,やはり府に落ちません.
> 最新と思われる asp-1.7.0.tar.gz の utils/makedep を参照しましたが,
> do Getopt("COTDR");
> という引数での呼び出しになっており, -d が有効に作用するとは思えません.
> また,-T -D ともに与えない状態で実行してみたところ,-d の有無にかかわらず
> elsif (!$opt_d) {
>          $target_dir = ""; ←ここ
> }
> に必ず突入しています.動作環境の違いでしょうか?
> 
> 
> 2011年10月12日1:47 Hiroaki TAKADA<hiro @ ertl.jp>:
>> 邑中様
>>
>> $^O 変数を使わずに POSIXモジュールを使っているのは、積極的な理由は
>> なかったと思います。ので、ご提案通りに修正したいと思います。
>>
>> -d オプションの方は、こちらでテストした限りは、動いています。-s
>> オプションは、-T オプションで置き換えたので削除しました。-d オプ
>> ションは、過去に何かの理由があって導入したものと思いますが、もう
>> 思い出せなくなっています。ですが、削除する理由がなかったので残っ
>> ています。
>>
>> 高田広章
>> 名古屋大学
>>
>> (11/10/11 10:18), Masaki Muranaka wrote:
>>> users-MLのみなさま:
>>> おはようございます.
>>>
>>> あともう一箇所腑に落ちないコードがありました.
>>> コマンドラインの -d オプションには,値の定義が無いので,Getopt 関数では解析できず,
>>> $opt_d は常に定義されないのではないように思います.
>>> 同様に動かない疑いのある -s オプションは ASP 版では削除になったようなのですが,
>>> -d を ASP 版で残している積極的な理由はありますか?
>>>
>>> 積極的な理由がなかったと仮定した場合の,さきほどの質問内容も含めた修正案の patch を添付します.
>>>
>>>
>>> 2011年10月11日8:01 Masaki Muranaka<monamour @ monaka.org>:
>>>> おはようございます.
>>>>
>>>> ASPのmakedepをざっと読んでみて,質問です.
>>>> ASPのmakedepで,/cygdrive 問題をクリアするために判別を試みているのは判りました.
>>>> その方法として POSIXモジュールをuseしていますが,POSIXモジュールは常に Perl に組み込まれているとは限らないのではと思います.
>>>> (また,モジュールが組み込まれていたとしても,すべての関数/変数/定数が使えるとも限りません)
>>>>
>>>> Perl では $^O 変数で動作環境の判別が可能と思うのですが,これを用いなかった積極的な理由はありますでしょうか.
>>>>
>>>> --
>>>> from もなか
>>>>
>>>>
>>
>>
>