作者: dune
日時: 2004/6/24(04:43)
極悪です。

藤岡和夫 さんの Re: Error: Runtime exception on jperl 5.005_03 から
> -bを付けると取り敢えずテストデータでは問題がなくなりました(^^)vしばら
>く試してみます。しかし、anhttpdのCGIでjperlに-bのスイッチを付けるのはど
>うするんだろ・・・実行プログラムの入力欄に一応加えてみる・・・おーっ、動

jperl -b にするのが実行前に分かるなら最初から perl を起動
するわい、って気もしますが、スクリプトの頭に #!jperl -b で
も ok です。cmd.exe は何もしないけど jperl が解釈してくれ
ます。

あとは <description> くらいの長い文字列なら日本語の途中に
マッチすることはないだろうと考えて index を使うとか。

sub midstr{
    my($str,$start,$end) = @_;
    my $pos1 = index($str,$start);
    return if $pos1 < 0;
    $pos1 += length($start);
    my $pos2 = index($str,$end,$pos1);
    return if $pos2 < 0;
    return substr($str,$pos1,$pos2-$pos1);
}

while(<>){
    $_ = midstr($_,"<description>","</description>");
    print $_,"\n" if defined $_;
}

#残念ながら index/substr を使っても速度的なメリットはなかっ
#たです。正規表現でわしづかみに処理するほうが簡単だし十分速
#かったりする。
-- 
極悪, FZH01112 at nifty.com
http://hpcgi1.nifty.com/dune/gwiki.pl?