Я запрашиваю таблицу "post"; его поля имя пользователя и содержимое являются китайскими utf8. Мне нужно преобразовать их в big5 для печати в консоли Windows. Мой скрипт не компилируется, сообщая об ошибках, что подпрограммы 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
...
ENCODE
вEncode
и создания базы данных с фиктивной таблицей я смог запустить программу, но не получаю описанных вами ошибок. - person daxim   schedule 16.02.2011