Re:うーん、スクリプトは人それぞれだからねー...



[ このメッセージへの返事 ] [ 返事を書く ] [ home.html ]



投稿者: かん太 @ oskd162.osk.threewebnet.or.jp on 97/6/19 00:55:52

In Reply to: しつこくCGIについて2&かん太さんへ

posted by 68user @ mamb.cs.gunma-u.ac.jp on 97/6/18 18:29:08

> うちは
> % which perl
> /usr/local/bin/perl
> です。普通はラッパー通さずに直でCGIを実行できるんですか
なら、
#!/usr/local/bin/perl
で、直接実行できるはずですよ?
もちろん、1行目の% cat ~/public_html/cgi-bin/cgi.cgiはいりません
-----------------------------------------------------

> データが入ったファイルから、日本語を検索したいんですが、うまくいきません
> require 'jcode.pl';
> # $nameには検索したい文字列が入ってます
> &jcode'convert(*name,'euc');
>
> open(IN,"< find-data");
> while (<IN>){
> if ( /$name/ ){ print $_; }
> }
>
> 半角英数字なら引っかかってくれるんですが、マルチバイトコード
> は全然だめです。どうすればいいでしょうか?
これは、簡単かな?文字列の一部だから
if (~/$name/ ){ とチルダ「~」がいるのでは?

> そもそもコードはeucでいいんでしょうか。jisだと日本語の表示が化ける
> のでeucにしてるんです(検索じゃなくて普通の表示で)

perlはeucが基本だからねー
コンバートのスクリプト自体はあってるみたいだしねー
でも、僕のHPのスクリプト全部S-JISで書いてて、コードの変換もしてないけど上手くいくよ。

> またスクリプト中に、検索したい文字列(マルチバイトコードを含む)を
> 書くにはどうすればいいでしょうか。要は、
> if ( m/あいう/ ){
> s/漢字/かんじ/;
> みたいなことをやりたいんですが、クォーティングしてもダメでした。

例えば、CGIで、りんごと入力するとappleと出力するなら
if ($nyuryoku=~/りんご/) {$syutyuryoku="apple";}
print "$syutyuryoku";
とすれば、いけます。
あと、$nyuryoku=~s/林檎|リンゴ/りんご/g;
と、付け加えておけば、漢字やカタカナでもappleと出ます
ま、これだけだと、別な書き方をした方が3行くらいでリスト形式出かけるので
こんなの使わないけどね...

もう数ヶ月perlから離れているので、説明が出来ないのです!
すいません...他の人に期待しましょう!^^;;