Namazu-devel-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: filter/macbinary.pl試用結果
- From: "Sakuma,Hiroaki" <sakuma@xxxxxxxxxx>
- Date: Tue, 13 Jan 2004 21:46:17 +0900
- X-ml-name: namazu-devel-ja
- X-mail-count: 03567
- References: <4003DE41.A8728178@asahi-net.or.jp>
佐久間です.
ワーニングは,多分mknmzの-wスイッチのせいだと思います.$6がセットされない状
態で,それを参照しようとしているためです.(なんか矛盾しているようなワーニン
グですが)
$$contref =~ s!</?(?:([A-Z]\w*):|(\!)\[.*?\]).*?>!element_space($1 ||
$2)!gsixe;
でどうでしょうか.でも$1が無い時ワーニングしそうですし....
Perlの正規表現の後方参照は,何個目の"("でマッチが開始されたかの数字です.
いろいろな下記が考えられるのですが,速度も含めて考えると,後方参照はいらない
ところは除いた方が好ましいです.
# "(?:" で始まる括弧は後方参照されません
> 寺西です。
>
> Tadamasa Teranishi wrote:
> >
> > "Sakuma,Hiroaki" wrote:
> > >
> > > > ただ、この場合 $6 が設定されない場合(たぶん)に
> > > >
> > > > Use of uninitialized value in concatenation (.) or string at
> > > > /usr/local/share/na
> > > > mazu/filter/html.pl line 313.
> > > >
> > > > とワーニングがでてしまうのが厄介です。
> > >
> > > この問題だけを解決するなら,
> > >
> > > element_space("$2$6")
> > >
> > > でワーニングは出ません.
> >
> > $2 もマッチしないことがあるようで、まだ出ますね。
> > # それとも、何か勘違いしているかもしれませんが。うーむ。
>
> Perl は詳しくないのでよくわらないのですが、
> やっぱり参照するのでワーニングがでるようです。
> (しかも $6 じゃなくて $4 でした。)
>
> $$contref =~
> s!</?(([A-Z]\w*):*\w*(?:\s+[A-Z]\w*(?:\s*=\s*(?:(["']).*?\2|[\w\-.]+))?)*|(
> \!)\[[^>]*\])\s*>!if
> (defined $2) { element_space($2); } else { element_space($4); }!gsixe;
>
> とすればとりあえず大丈夫そうです。
> # なんか泥臭いけど。
>
> ちなみに分ける場合は、以下のものを remove all elements に入れれば
> 良いようです。(本質的にはどちらも同じです。当たり前だが。)
>
> # remove Office Markup <o:></o:>, <![]>
> $$contref =~ s!</?([A-Z]\w*):.*?>|<(\!)\[.*?\]\s*>!if (defined $1) {
> element_space($1); } else { element_space($2); }!gsixe;
>
> # 簡単なテストはしましたが、合っているかどうかは自身なし。
=== Sakuma,Hiroaki =======================================================
BEETAS.org www.beetas.org sakuma@xxxxxxxxxx
Webmin-JP jp.webmin.com sakuma@xxxxxxxxxxxxx
Waseda Univ CS sakuma@xxxxxxxxxxxxxxx
=== "There's More Than One Way To Do It" =================================