1

私はこれらの2つのファイルを持っています:t.plそしてt

$ file t.pl t
t.pl: UTF-8 Unicode text
t:    UTF-8 Unicode text
$ cat t
日本

t.plには3つのバージョンがあります。

ケース1

use strict;
use warnings;
use utf8;

$_='日本';
if(/日/){
    print "match!\n";
 }

perl t.plアウトパスmatch!

ケース2

use strict;
use warnings;
use utf8;

while(<DATA>){
    chomp;
    if(/日/){
        print "match!\n";
    }
}
__DATA__
日本

またmatch!

次にケース3

use strict;
use warnings;
use utf8;

while(<>){
    chomp;
    if(/日/){
        print "match!\n";
    }
}

perl t.pl t表示されませんmatch!

では、ケース3の何が問題になっていますか?

4

1 に答える 1

3

入力のエンコーディングを設定する必要がありますが、use utf8それは行いません。挿入するだけ

use open IN => ":utf8";

ループの前。詳細については、 openを参照してください。

于 2013-03-26T10:04:35.827 に答える