Bruce.です。
Zazelさんが書くのを待っていたのですが ;-)
藤岡和夫 writes:
> 毎度お世話になります。
>
> 続けて、encoding関連で疑問が出てきましたのでご指導ください。
>
> 下記のような簡単なHTMLフォームから入力データを受け取って、表示するだけで
> すが、パターンマッチングで条件分岐するというスクリプトです。
>
> フォームで"藤岡"と入力してもパターンマッチがマッチしません。$in{'name'}
> eq "藤岡"とすると意図どおりに条件分岐するのですが・・・
eq で 条件が真になる理由がわかりませんが(入力文字列がupgradeしてから
比較されてる?)、フォームから持ってきた“藤岡”という文字列と、スクリ
プト中の“藤岡”という文字列の文字コードが違うのが原因ではないでしょ
うか? あくまでもスクリプト中の文字列はPerlの内部コードにupgradeされて
いることにご注意。
$name = decode('sjis', $in{'name'});
if($name =~ /藤岡/){
のようにしてやると期待通り、条件は真となりました。
いじょ。