作者: Bruce.
日時: 2005/9/6(16:21)
Bruce.です。

Zazelさんが書くのを待っていたのですが ;-)

藤岡和夫 writes:

> 毎度お世話になります。
> 
> 続けて、encoding関連で疑問が出てきましたのでご指導ください。
> 
> 下記のような簡単なHTMLフォームから入力データを受け取って、表示するだけで
> すが、パターンマッチングで条件分岐するというスクリプトです。
> 
> フォームで"藤岡"と入力してもパターンマッチがマッチしません。$in{'name'}
> eq "藤岡"とすると意図どおりに条件分岐するのですが・・・

eq で 条件が真になる理由がわかりませんが(入力文字列がupgradeしてから
比較されてる?)、フォームから持ってきた“藤岡”という文字列と、スクリ
プト中の“藤岡”という文字列の文字コードが違うのが原因ではないでしょ
うか? あくまでもスクリプト中の文字列はPerlの内部コードにupgradeされて
いることにご注意。

$name = decode('sjis', $in{'name'});
if($name =~ /藤岡/){

のようにしてやると期待通り、条件は真となりました。

いじょ。