perl 日本語パターンマッチ

前提

日本語ファイルをデータベースに格納する為
strawberry perl でコンバーターを作成しています。

実現したいこと

都道府県ごとにファイルを分割するのが目的です。
読み込んだファイルの住所のフィールドが●●で始まっていたら、出力ファイルへ、が希望する動作です。

発生している問題・エラーメッセージ

マッチするはずの東京都のレコードはスルーされ
出力されないまま終了します。
elseでprintすると全読み込み行が出力されます。

該当のソースコード

#!/usr/bin/perl

use utf8;
#binmode STDIN, ':encoding(cp932)';
#binmode STDOUT, ':encoding(cp932)';
#binmode STDERR, ':encoding(cp932)';
#binmode STDIN, ':utf-8';
#binmode STDOUT, ':utf-8';
#binmode STDERR, ':utf-8';
use Encode qw/encode/;

our $file = 'data.csv';
#our $rslt = 'c:\Strawberry\data_tokyo.csv';

open(our $in, "<", $file) or die "Cannot open input: $file: $!";

#open(our $out, ">", $rslt) or die "Cannot open output: $rslt: $!";
while(our $str = readline $in){
chomp $str;
$str = encode('utf8', $str);
#$str = decode('utf-8', $str);
our ($pref) = (split(/,/, $str))[8];
if($pref =~ /^東京/){
# Encode::from_to( $str, 'utf-8', 'sjis' );
print "$str\n";
}
}

close $in or die qw/Can't close file "$in": $!/;
#close $out or die qw/Can't close file "$out": $!/;

exit;

試したこと

perlスクリプトはutf8 読み込みファイルはshift-jisです
日本語の判定に失敗しているので苦手な文字コード云々か、とネット上の
サンプルを色々試した残骸がコメントアウト部分です

コメントを投稿

0 コメント