namazu-dev(ring)


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

Re: New filtering process implemented.



佐藤文優 @ 開発にも参加したいが…です。

Satoru Takabayashi <satoru-t@xxxxxxxxxxxxxxxxxx> wrote:
>>  gzip.plには、Compress::Zlibを用いる方法と、gzipをpipeで呼び出す方法
>>が実装されていますが、今のところ環境を判別して動的にどちらかを選択する
>>ようにはなっていません。コメントアウト部分を適時選択してください ^^;
>
>ちょっと考えてみましたが、 configure 時に Compress::Zlip の
>有無を判別して filter_file(), filter_xs() を切り替えるのはけっ
>こう面倒そうです。
>
>というのは、 use 文は compile 時に必ずそのモジュールを要求す
>るため、
>
>    sub filter_xs (\$) {
>        my ($contref) = @_;
>        use Compress::Zlib;
>
>と、サブルーチンの内側に入れても必ず、 Compress::Zlib を必要
>とするからです。mknmz.pl で NKF, Text::Kakasi, Text::ChaSen1 
>モジュールをそれぞれ require 文で呼び出しているのはそのため
>です。

判定分で eval {} が使えると思ったら使えず、しかし、eval "use foo;"; 
だったら大丈夫そうです。

    eval "use Compress::Zlib;";
    if ($@ eq '') {
	モジュールを使う
    } else {
	gzip を pipe で使う
    }

といった感じ。

-- >8 -- signature -- >8 --
FROM    : 佐藤文優(さとうふみやす) <fumiya@xxxxxxxxx>
WEB     : http://www.bento.ad.jp/~fumiya/
WEB(LAN): http://kumasun.si.ykhm.cij.co.jp/
SAMBA   : http://samba.bento.ad.jp/