青柳です。 On Wed, 22 Jun 2011 21:29:33 +0900 Tasamasa Teranishi <yw3t-t...@asahi-net.or.jp> wrote:
> > ! sub generate_uri (@) { > > my ($file, $fragment) = @_; > > return "" unless defined $file; > ... > > ! sub generate_uri ($$) { > > my ($file, $fragment) = @_; > > return "" unless defined $file; > > generate_uri ですが、これは引数1つで呼び出される時と、引数2つで > 呼び出されることがあります。 > また generate_uri の中身で判断すると、引数なしで呼び出されること > も想定しています。(引数なしで呼ぶことに意味があるかどうかは別に > して) 改めて generate_uri() を確認しますと、確かにそのようにコーディングされて いるようです。また mknmz:470行では $fragment 無しで呼び出していますので 私のパッチは不適切でした。申し訳ございません。 > このため、($$) だとまずいです。 > 引数の省略ができるため (;$$) とするか、(@) のままでないと > いけません。 > > こういう場合、(@) を (;$$) に書き換えて、引数2個で省略が可能だ > ということを明記した方がいいかどうかは Perl の場合ちょっと > 不明です。 > # 割と (@) を使うことも多いので。 generate_uri() の場合は、($;$)でよいようにも思いますが、本質的では ありませんので、取り込んでいただくことを無理にお願いするものでは ありません。 > > ! sub trapintr { > > my ($signame) = @_; > > print STDERR "Warning: signal $signame occured.\n"; > > } > ... > > ! sub trapintr($) { > > my ($signame) = @_; > > print STDERR "Warning: signal $signame occured.\n"; > > } > > 次に trapintr ですが、これはシグナルハンドラです。 > シグナルハンドラでは引数が1つと仕様で決まっているので、明記しても > 良いのですが、perldoc perlipc で示されている例のように引数を > 省いて記述した例が多数存在するため、慣例に従っています。 > > おそらくシグナルハンドラということで、この関数をユーザが明示的に > 呼び出すことはないため、プロトタイプ宣言する意味がほぼなく、 > 誰も意識していないためではないかと思います。 こちらは了解いたしました。 > ということで、 > > - 現状問題が生じていない > - 修正するメリットが特にない > > という理由により、折角なんですが本修正は行わないことにします。 > > もし、何か不具合があるとか、修正するとこういうメリットがあると > いうことがあればご指摘ください。 修正しないことによる不具合も、修正することによるメリットも特に ありません。ソースを眺めていて気になったというだけのことです。 -- Shigekazu Aoyagi <aoy...@kyf.biglobe.ne.jp> _______________________________________________ Namazu-users-ja mailing list Namazu-users-ja@namazu.org http://www.namazu.org/cgi-bin/mailman/listinfo/namazu-users-ja