テーブル「投稿」を照会しています。そのフィールド username と content は utf8 中国語です。Windowsコンソールで印刷するには、それらをbig5に変換する必要があります。スクリプトがコンパイルに失敗し、ENCODE ルーチンが再定義されているというエラーが報告されます。
DBI なしでエンコード/デコードをテストする別のスクリプトがあり、正常に動作します。どうすれば修正できますか?
スクリプト:
use DBI;
use strict;
use ENCODE qw /encode decode/;
my $dbh = DBI->connect("dbi:SQLite:dbname=tweetylicious.db","","",{sqlite_unicode => 1});
$dbh->do("PRAGMA foreign_keys = ON");
my $result_aref = $dbh->selectall_arrayref("SELECT * FROM post");
foreach my $user ( @$result_aref ) {
my $name = ${$user}[1];
my $content = ${$user}[2];
print encode("utf8", $name), " : ",$content, "\n";
}
エラー:
subroutine DEBUG redefined at path-to-lib/ENCODE.pm line 144
subroutine encoding redefined at path-to-lib/ENCODE.pm line 164
...